Como Faz, Dicas, Geek/Nerd, etc.

A Melhor maneira de Manipular datas em Perl

banner-coder

Vou deixar aqui uma dica bem rápida de programação que é bastante simples mas de grande valor no que se refere a geração e manipulação de datas usando a linguagem Perl.

O Perl é uma linguagem já bem antiga mas ainda assim bastante poderosa e largamente difundida principalmente junto aos Administradores de Sistemas Unix Like por ajudar a automatizar diveras tarefas. Eu costumo usar esta linguagem no meu dia-a-dia, mas quanto mais eu uso, mais eu vejo que tenho muito a aprender.

Uma das coisas que mais me traz dificuldades é trabalhar com datas, não só em Perl, mas em qualquer linguagem esta tarefa é meio complicada. O problema é que Perl tem um jeito todo particular de tratar as datas, seus contadores internos começam sempre com 0 (zero), sendo assim, o mês de Janeiro é o mês Zero por exemplo, logo Dezembro é o mês 11!

Difícil de entender, fala a verdade…a parte boa é que o Perl trabalha muito bem com timestamp, que na minha opinião é a melhor maneira de trabalhar com datas em qualquer lugar.

Numa histórinha rápida o timestamp é um contador que controla a quantidade de segundos que se passaram desde as zero horas do dia Primeiro de Janeiro de 1970.

O timestamp é muito interessante porque nele não existem horas, dias semanas, meses, anos…só segundos, e a partir desta quantidade de segundos você consegue descobrir qualquer data e hora que se deseje.

Para fazer isto em Perl basta inserir no seu script as linhas como no exemplo abaixo:

#!/usr/bin/perl
use POSIX;
my $birthday = POSIX::strftime(“%d/%m/%Y”,localtime(time-1012025181));
print “$birthday\n”;

A mágica toda fica por conta do Modulo Posix que é importado no começo do script, que chama a função strftime que faz a conversão, e o timestamp que foi falado acima é gerado com a função time do perl e sem esforço nenhum você consegue obter qualquer data, no exemplo acima a data que será impressa é 09/10/1977 que é a data do meu nascimento, que eu consegui subtraindo o time pelo número de segundos 1012025181.

Ah, a data no formato dd/mm/yyyy foi conseguida com a inclusão do formato %d/%m/%Y igual no comando date do Linux ;^)

Bom, é isso, espero que os programadores de plantão tenha gostado da dica, um abraço!

Related Posts Plugin for WordPress, Blogger...