A ver a categoria “Datas”

Lembrado por esta posta, e continuando com a série das datas, apresento-vos hoje o cálculo do dia da Páscoa. Este cálculo é muito importante nas civilizações de origem católica, visto que três feriados (em Portugal – noutros países até podem ser mais) dependem do dia do Domingo de Páscoa: o Carnaval é 47 dias antes; a Sexta-feira Santa é dois dias antes; e o Corpo de Deus é 60 dias depois.

Antes de passarmos ao cálculo do dia, é preciso introduzir alguns conceitos.

Adoro datas. Sério, é uma das áreas mais fascinantes da programação. Se não acreditam, vejam lá o filme que foi o chamado bug do ano 2000. Até arranjaram um acrónimo fixolas e tudo: Y2K. Mas sobre isso falarei noutro dia, ou então não – até porque vem aí um problema bem mais grave em 2038 (a que alguns já chamam Y2K38 – c’mon, really?).

Aqui há dias relembraram-me o quanto eu gosto de datas. Um tipo – que eu não conheço de lado nenhum – pediu ajuda num fórum para fazer uma função em C que calculasse o número de dias entre duas datas; provavelmente, e tendo em consideração o pedido, para um trabalho da escola, ou coisa que o valha. Devo dizer que fui um bocadinho totó e disponibilizei logo ali a função inteira, quando a ideia de um fórum não é fazer por, mas sim ajudar a fazer.

Seja como for, só me decidi ajudá-lo por considerar o problema interessante; não é algo que seja muito comum hoje em dia, até porque a maior parte das linguagens de programação tem bibliotecas específicas para trabalhar com datas, e esta função é disponibilizada de forma directa. Além disso, vi que as orientações que já lhe tinham dado não eram, nem de perto, nem de longe, o mais eficaz que se podia ser. O problema no meio disto tudo, como não podia deixar de ser, é a existência ou não de anos bissextos no intervalo. Como Arthur C. Clarke colocou de forma hilariante em 3001 – Odisseia Final, “um dia, um dos menores erros de Deus será corrigido e o ano terá 12 meses de 30 dias exactamente iguais”.

 Categorias
 Arquivo
 Projectos em Destaque
 Últimas Postas no Blog
 Últimos Comentários do Blog