terça-feira, 24 de março de 2009

Páscoa em Python

Bom, eu ia fazer um artigo sobre como calcular o dia da páscoa, mas achei esse excelente artigo do blog Pipeless e resolvi pegar algumas partes dele e colocar aqui. Divirtam-se.

Apesar de eu ser Wicca, uma coisa que sempre me intrigou foram as datas sempre variantes das comemorações lunares da Igreja Católica. Você já parou para pensar de onde vieram essas datas comemorativas do nosso calendário?

Estava pensando sobre isso e cheguei à conclusão de que existem três tipos de datas:

1. Datas fixas (e.g., Natal, Independência, Dia dos Namorados).
2. Datas fixas por dia da semana (e.g., Dia dos Pais e das Mães).
3. Datas móveis (e.g., Páscoa, Carnaval, Corpus Christi)...

O primeiro tipo de datas não tem mistério: acontece naquele dia e pronto. O segundo tipo também é traquilo de se entender: pegue um dia da semana de determinado mês e você tem a data – no segundo domingo de agosto é dia dos pais, por exemplo. Já o terceiro tipo é mais intrigante: nem sempre o carnaval é no dia 5 de fevereiro e, às vezes, nem é comemorado no mesmo mês de outros anos.

Foquemo-nos no terceiro tipo de datas. Como saber quando será a sexta-feira da paixão ou o Corpus Christi? Não sei se repararam, mas todas estas comemorações móveis estão relacionadas à cultura cristã e todas as datas se baseiam na data da Páscoa. Por exemplo:

* Carnaval: 47 dias antes da Páscoa.
* Ramos: 7 dias antes da Páscoa.
* Paixão: 2 dias antes da Páscoa.
* Ascenção: 39 dias após a Páscoa.
* Pentecostes: 49 dias após a Páscoa.
* Corpus Christi: 60 dias após a Páscoa.

Posto isso, surge a dúvida: como calcular a data da Páscoa? A resposta é que a Páscoa ocorre no primeiro domingo após a primeira lua cheia após 21 de março (equinócio de primavera no hemisfério norte):

1. Encontre o dia 21 de março.
2. Encontre a primeira lua cheia após esta data.
3. A Páscoa será o primeiro domingo após a data encontrada no passo 2.

Leia mais em Pipeless: "Calculando a data da Páscoa em Python".