De acordo com as Leis 12.965/2014 e 13.709/2018, que regulam o uso da Internet e o tratamento de dados pessoais no Brasil, ao me inscrever na newsletter do portal DICAS-L, autorizo o envio de notificações por e-mail ou outros meios e declaro estar ciente e concordar com seus Termos de Uso e Política de Privacidade.


O comando date e o ano 2000

Colaboração: Rubens Queiroz de Almeida

Data de Publicação: 15 de Janeiro de 1999

Como já havia dito antes, a lista Dicas-L é totalmente automatizada (menos a criação das dicas, é claro). Desta forma, recentemente, como mereço, tirei uns 20 dias de férias e ninguém notou. As mensagens continuaram chegando regularmente, não é?

Cada dica que escrevo é colocada em um arquivo contendo a data do dia em que irá circular. Esta mensagem por exemplo, está contida em um arquivo chamado 990115.doc.

Mas aí vem o ano 2000. Vocês notaram que somente uso dois dígitos para o ano. Desta forma, provavelmente no ano 2000 a lista Dicas-L entrariam na lista dos serviços inoperantes, causando transtornos e preocupação em muita gente (certo? :-)

Para resolver isto, basta mudar o script de automatização da lista. Hoje eu obtenho o nome do arquivo a partir da data com o seguinte comando:

TIP_FILE=""date +%y%m%d""

A variável $TIP_FILE é usada em vários pontos do script para identificar os diversos arquivos gerados.

Para resolver o problema, basta substituir:

TIP_FILE=""date +%Y%j"" 

Desta forma, a variável $TIP_FILE, passará a representar o ano com 4 dígitos e a data passará a ser representada no formato Juliano. No dia 1 de janeiro, a variável TIP_FILE assumirá o valor 1999001.

A adoção do formato juliano não é realmente necessária. Estou fazendo isto apenas por conveniência, pois em breve pretendo voltar a circular mensagens na Dicas-L também aos sábados e domingos, o que parei de fazer há alguns meses por falta de tempo.

E pronto, está resolvido o problema do ano 2000 (ao menos para a Dicas-L :-)

Uma observação final. Estes valores (%j, %Y, etc,) podem variar de sistema para sistema. A solução apresentada obedece à sintaxe do comando date para sistemas Solaris.



Veja a relação completa dos artigos de Rubens Queiroz de Almeida