Come per la maggior parte delle feste cattoliche anche la pasqua è un miscuglio di tradizioni di altre religioni, infatti la data della pasqua ha a che fare con la pasqua ebraica(che è tutt'altra cosa! ricordo che gli ebrei non credono nella venuta del messia! quindi per loro non avrebbe alcun significato celebrare la pasqua cattolica) la quale si basa sulle fasi della luna.
Ovviamente il moto della luna è diverso da quello terrestre e di anno in anno la data x è diversa! come se non bastasse la pasqua si festeggia la domenica successiva alla data x!
Vi dico solo che il calcolo non è per niente banale e mi limito a rimandarvi alla pagina di wikipedia dove è descritto l'algoritmo che ho utilizzato! Non provo a spiegarvi l'algoritmo perchè è già complicato di suo! Ho usato l'algoritmo di Gauss che è molto più semlice rispetto agli altri proposti nella pagina di wikipedia e che ha il vantaggio di indicare la data esatta!
ecco il codice:
- public class Pasqua
- {
- {//algoritmo cristiano per il calcolo della pasqua secondo il calendario gregoriano(metodo aritmetico di Gauss) http://it.wikipedia.org/wiki/Calcolo_della_Pasqua#Metodo_aritmetico_di_Gauss
- int y = 2010;//anno gregoriano compreso tra il 1583 ed il 2499
- final int a = y%19;
- final int b = y%4;
- final int c = y%7;
- int m = 24;
- int n = 5;
- // assegnazione m ed n in base al secolo di y
- if (y>=1583 && y<=1699)
- {
- m = 22;
- n = 2;
- }
- else if (y>=1700 && y<=1799)
- {
- m = 23;
- n = 3;
- }
- else if (y>=1800 && y<=1899)
- {
- m = 23;
- n = 4;
- }
- else if (y>=1900 && y<=2099)
- {
- m = 24;
- n = 5;
- }
- else if (y>=2100 && y<=2199)
- {
- m = 24;
- n = 6;
- }
- else if (y>=2200 && y<=2299)
- {
- m = 25;
- n = 0;
- }
- else if (y>=2300 && y<=2399)
- {
- m = 26;
- n = 1;
- }
- else if (y>=2400 && y<=2499)
- {
- m = 25;
- n = 1;
- }
- //calcolo d ed e
- int d = (19*a+ m)%30;
- int e = (2*b+4*c+6*d+ n)%7;
- // calcolo del giorno
- if (d+e<10)
- {
- int marzo = d+e+22;//caso marzo
- System.out.println("La pasqua dell anno gregoriano " + y + " cade nel giorno " + marzo + " del mese di marzo");
- }
- else
- {
- int aprile = d+e-9;
- if (aprile == 26)//eccezione 1 aprile
- System.out.println("La pasqua dell anno gregoriano " + y + " cade nel giorno 19 del mese di aprile");
- else if (aprile == 25 && e==6 && a>10 )//eccezione 2 aprile
- System.out.println("La pasqua dell anno gregoriano " + y + " cade nel giorno 18 del mese di aprile");
- else// caso generico aprile
- System.out.println("La pasqua dell anno gregoriano " + y + " cade nel giorno " + aprile + " del mese di aprile");
- }
- }
- }
Se siete finiti quì perchè cercavate la data della pasqua di un anno x compreso tra il 1583 ed il 2499, chiedete pure che ve lo calcolo.
Dovevo fare qst programmino, e grz a te l'ho capito!!!
RispondiEliminaGrazieeeeeeeeeeeeeeeeeeee
Prego! È sempre un piacere essere utili a qualcuno! se ti interessa ho pure trovato questo link dove lo stesso algoritmo è sviluppato anche in altri linguaggi... in java è fatto utilizzando le librerie util...
RispondiEliminaa breve posterò un altra versione che calcola le date dall'anno x all'anno y.
in ogni caso, ci conosciamo già?
http://it.wikibooks.org/wiki/Implementazioni_di_algoritmi/Calcolo_della_Pasqua
RispondiEliminascusa mi ero dimenticato il link ;-p