Cálculo de datas usando Unix Timestamp no Excel

Olá pessoal!

Desculpe a absoluta ausência do blog, mas há algum tempo venho pensando sobre a manutenção do mesmo ou não. Creio que migrarei para um domínio proprío em pouco tempo, para poder arrancar uma graninha do Google e de outros sistemas de marketing para ajudar na minha própria manutenção.🙂

Bem, o que me motiva esta semana é um desafio que surgiu na empresa que trabalho atualmente. Esta empresa possui um bom sistema de suporte ao clientes, mas a parte de relatórios é pobre. E eu quis fazer um levantamento sobre o que gera mais suportes e não consegui.

Visto que não gosto de desenvolver fui buscar uma solução mais burocrática, através de planilhas. Como já configurei o Excel para acessar a base, pensei em como poderia transformar as timestamps do Unix em datas e horário na planilha.

História

Para quem não sabe o que é o Unix Timestamp, é

um sistema que facilita o cálculo de datas e horários pelo sistemas computacionais. É conhecido também como POSIX Timestamp. Para nós o calendário gregoriano é muito prático, e temos muita facilidade para lidar com as datas e horários. Mas trabalhar com esses dados no computador é uma tarefa agreste, onde cada campo teria que ser tratado de forma independente. Veja o exemplo de 25/02/1977, às 09:30. Se Quisermos saber o que aconteceu em 30 dias tratamos a informação de orma quase que automática, jogando a data para 25 de Março. Já para um computador… Porém se você der o número 225711000 e aumentar 2592000 (valor de segundos de 30 dias), pode-se ver que o cálculo se torna extremamente fácil. Resumindo é a transformação da data e hora em um número inteiro e positivo.

Curiosidades
  • O data computada como início do Unix Time é o dia 1º de Janeiro de 1970, às 00:00:00h do UTC (Coordinated Universal Time). É chamado de Unix Epoch;
  • Não leva em consideração “segundos bissextos”;
  • Ele é normalmente representando por im número integral de 32 bits (signed int32). Com isso o limite da representação atual é a data de 9/02/2038 03:14:07 UTC.
  • No dia 13 de Fevereiro de 2009, às 23:31:30 (UTC) foi comemorado por vários nerds do mundo inteiro a chegada do esperado ‘1234567890’
Fórmula

Voltemos ao problema. Com mais de 17.000 registros no BD, não iria sacanear nenhum estagiário para catalogar as O.S. (ordens de serviço) manualmente. Apesar da idéia me parece tentadora, seria pouco prática (mas reinterando, seria divertido :D).

Aon invés disso, vou extrair os dados que necessito e utilizar a seguinte formula:

=”CÉLULA_DESEJADA”/86400+25569+(-3/24)

Agora vamos ver melhor o que significa tudo isso. A parte da “célula desejada” deixarei para lá, sei que vocês não necessitam de explicações para isso. O primeiro número, 86400 é a quantidade de segundos de um dia UTC comum. já o número 25569 é a representação decimal da planilha do dia 01 de Janeiro de 1970. E a última parte é um ajuste de fuso horário, em relação a hora GMT.

 

É isso pessoal! Espero que seja de alguma serventia para vocês algum dia.

Referência:


7 Comentários on “Cálculo de datas usando Unix Timestamp no Excel”

  1. Mario Coutinho disse:

    Sem dúvida que foi muito útil! Não sou estagiário. Apenas me divirto com Drupal. Gostaria de lhe agradecer imensamente pela dica. Parabéns pela explicação clara e objetiva. Obrigado, obrigado. Muito obrigado. Tudo de bom.

  2. Júlio César disse:

    Boa noite amigo. seguinte, seu não estiver enganando eu acho que tem algo errado aqui..
    bom.. se o numero é no maximo 32 bits isto dará 2^32 = 4294967296, convertendo valor para dia mes ano hora minuto segundo teremos =>> Sun, 07 Feb 2106 06:28:16 GMT. Estou enganado? abraços… Júlio

  3. Júlio César disse:

    Poxa vida.. acho que entendi.. vc usa o int 32 bits sinalizado… isto dará 2^31 = 2147483648 convertendo dará => Tue, 19 Jan 2038 03:14:08 GMT , no seu texto diz que é fevereiro, mas na realidade é janeiro..
    desculpa o meu erro… abraços….

  4. Júlio César disse:

    Imagine.. sem problemas… eu tenho muitas dúvidas ainda neste sistema de contagem UTC. abraços.

  5. Mariana disse:

    ola, como eu encontro essa representacao decimal da planilha?


Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s