Seleziona la tua lingua
Il calcolo della Pasqua
Uno dei temi che si impara ad odiare per primo quando si inizia a programmare è la gestione delle date. Gestire un calendario significa fare tutto e quando si inizia a scrivere la prima libreria di funzioni in linguaggio C per gestire le date sembra quasi di dover lanciare una capsula nello spazio. In realtà esistono librerie di sistema per risolvere molti problemi in modo elegante ma scriversele da solo fa figo, non impegna e sta bene con tutto. Gestire le festività è semplice finché si parla di Natale o Capodanno ma le feste mobili sono le più antipatiche. Per esempio la Pasqua. Come si fa a stabilire quando cade la pasqua in un determinato anno?
A questo punto la letteratura abbonda di soluzioni. La più immediata per un programmatore è sicuramente il metodo di Gauss.
Dato un valore Y che rappresenta l'anno per cui si effettua il calcolo, il metodo restituisce il giorno ed il mese in cui cade la Pasqua. A seconda dell'intervallo in cui sii trova il valore di Y si identificano due parametri, M e N:
# | Intervallo del valore di Y | Valore di M | Valore di N |
1 | fino al 1582 | 15 | 6 |
2 | 1583 - 1699 | 22 | 2 |
3 | 1700 - 1799 | 23 | 3 |
4 | 1800 - 1899 | 23 | 4 |
5 | 1900 - 2099 | 24 | 5 |
6 | 2100 - 2199 | 24 | 6 |
7 | 2200 - 2299 | 25 | 7 |
8 | 2300 - 2399 | 26 | 1 |
9 | 2400 - 2499 | 25 | 1 |
Dati M e N, si calcola il valore delle variabili A, B, C, D e E secondo le seguenti formule, dove mod è l'operatore di modulo, che restituisce il resto della divisione intera:
A = Y mod 19
B = Y mod 4
C = Y mod 7
D = (19A + M) mod 30
E = (2B + 4C + 6D + N) mod
F = 22 + D + E
Il mese in cui cade la Pasqua può essere marzo o aprile. Per determinarlo si controlla il valore di F:
- se F è minore o uguale di 31: il mese è marzo ed il giorno è F;
- se F è maggiore di 31:
- se F - 31 è diverso da 25 e 26, oppure F = 25 e D è diverso da 28 e/o A è minore o uguale a 10: il mese è aprile ed il giorno è F - 31;
- se F - 31 = 25 e D = 28 e A è maggiore di 10: il mese è aprile ed il giorno il 18;
- se F - 31 = 26: il mese è aprile ed il giorno il 19.
Tradotto in pseudo codifica, le variabili GG e MM rappresentano il giorno ed il mese espresso in numero da 3 a 4, con 3 che corrisponde a marzo e 4 ad aprile:
If F <= 31 Then
GG = F
MM = 3
Else If (F - 31 <> 25 AND F - 31 <> 26) OR (F = 25 AND D <> 28 AND A < 10) OR (A < 10) Then
GG = F - 31
MM = 4
Else If (F - 31 = 25 AND D = 28 AND A > 10) Then
GG = 18
MM = 4
Else If (F - 31 = 26) Then
GG = 19
MM = 4
End
Il seguente tabulato mostra le date della Pasqua dal 1980 a oggi:
ANNO A B C D E F DATA
---------------------------------------------------
1980 4 0 6 10 5 37 06/04/1980
1981 5 1 0 29 6 57 26/04/1981
1982 6 2 1 18 2 42 11/04/1982
1983 7 3 2 7 5 34 03/04/1983
1984 8 0 3 26 5 53 22/04/1984
1985 9 1 4 15 1 38 07/04/1985
1986 10 2 5 4 4 30 30/03/1986
1987 11 3 6 23 5 50 19/04/1987
1988 12 0 0 12 0 34 03/04/1988
1989 13 1 1 1 3 26 26/03/1989
1990 14 2 2 20 4 46 15/04/1990
1991 15 3 3 9 0 31 31/03/1991
1992 16 0 4 28 0 50 19/04/1992
1993 17 1 5 17 3 42 11/04/1993
1994 18 2 6 6 6 34 03/04/1994
1995 0 3 0 24 1 47 16/04/1995
1996 1 0 1 13 3 38 07/04/1996
1997 2 1 2 2 6 30 30/03/1997
1998 3 2 3 21 0 43 12/04/1998
1999 4 3 4 10 3 35 04/04/1999
2000 5 0 5 29 3 54 23/04/2000
2001 6 1 6 18 6 46 15/04/2001
2002 7 2 0 7 2 31 31/03/2002
2003 8 3 1 26 3 51 20/04/2003
2004 9 0 2 15 5 42 11/04/2004
2005 10 1 3 4 1 27 27/03/2005
2006 11 2 4 23 2 47 16/04/2006
2007 12 3 5 12 5 39 08/04/2007
2008 13 0 6 1 0 23 23/03/2008
2009 14 1 0 20 1 43 12/04/2009
2010 15 2 1 9 4 35 04/04/2010
2011 16 3 2 28 5 55 24/04/2011
2012 17 0 3 17 0 39 08/04/2012
2013 18 1 4 6 3 31 31/03/2013
2014 0 2 5 24 5 51 20/04/2014
2015 1 3 6 13 1 36 05/04/2015
Dal 325 d.C., anno in cui si tenne il Concilio di Nicea, fu stabilito che la Pasqua sarebbe caduta la prima domenica dopo il plenilunio di marzo. Da allora i matematici e gli astronomi elaborarono diversi metodi per stabilire il giorno esatto. Quello di Gauss è uno di quelli più recenti. Esso fu sviluppato nel 1800, poi successivamente corretto dallo stesos Gauss nel 1816. Il metodo è applicabile da 1582 poiché esso è l'anno di entrata in vigore del calendario Gregoriano. Il 24 febbraio 1582 ne fu infatti sancita l'entrata in vigore, sopprimendo i giorni compresi tra il 4 ed il 15 ottobre 1582.