quarta-feira, 8 de agosto de 2012

Manipulação de datas em Linux

Para fazer conversão de dia juliano (dia do ano 0-365) para o formato gregoriano (dd-mm-aaaa) deve ser utilizada a seguinte linha de comando:

yyyymmdd=$(date -d "${yyyy}-01-01 + ${ddd} days -1 day" +%Y%m%d)

onde as variáveis yyyy representam o ano de interesse e ddd representa o dia sequencial como por exemplo 221

cdsr@dallas:~/scripts$ yyyymmdd=$(date -d "2012-01-01 + 221 days -1 day" +%Y%m%d)
cdsr@dallas:~/scripts$ echo $yyyymmdd
20120808

Por outro lado converter de dia juliano para dia-mes-ano é mais simples, bastando para isto utilizar o seguinte comando:

date -d 2012-08-08 +%j