Scroll Top
Via Antonio Amato, 20/22 84131 Salerno (SA)

Buona Pasqua! ma quando? Calcola la data con Csharp

Img-blog-nexsoft-pasqua_algoritmi

(articolo redatto da Domenico Di Mieri)

In questo approfondimento approfittiamo delle festività pasquali per farti gli auguri a modo nostro: da Nerd:-). ti presentiamo un utile confronto tra alcuni algoritmi per il calcolo della data della Pasqua.

La Pasqua

Spesso, probabilmente a causa dell’atmosfera gioiosa e amorevole del periodo, si crede che Natale sia la festa più importante per i cristiani, ma in realtà la Pasqua é la vera e più importante festa del cristianesimo.
Durante la Pasqua, infatti, i cristiani celebrano la resurrezione di Gesù ed é questo evento da cui scaturisce l’intero nuovo testamento e, di conseguenza, le religioni cristiane.
La data della Pasqua non è fissa e segue un calendario “lunisolare” simile al calendario ebraico. In particolare essa cade nella prima domenica successiva al primo plenilunio di primavera.

Algoritmi per il calcolo della data della Pasqua

Chi, qualche volta, ha scritto un programma che gestisce un calendario, una tabella dei turni lavorativi in un software per la gestione delle risorse umane o un’applicazione più specificatamente “di dominio” religioso, sa che é utile sapere quando cade la Pasqua e con essa le festività che ne dipendono come, ad esempio, il Lunedì “in Albis”, ecc.
A seguire, vedremo insieme alcuni degli algoritmi più utilizzati per il calcolo della data della Pasqua.

Algoritmo di Gauss

Non c’è campo delle scienze a cui Gauss non abbia dato qualche contributo.  Nel 1800 il famoso matematico presentò, infatti,  la sua versione dell’algoritmo per il calcolo della data della Pasqua.

L’algoritmo si basa su due passaggi:

  • nel primo si usa una formula approssimata per calcolare la posizione della Lun,a ovvero la data del primo novilunio di primavera;
  • nel secondo passaggio si corregge la data ottenuta con un valore che la porta alla domenica successiva.

L’algoritmo ha subito diverse modifiche e correzioni da parte dello stesso Gauss e di un suo studente: Peter Paul Tittel.

algoritmo di gauss

Algoritmo di Meeus/Jones/Butcher

L’algoritmo di Meeus/Jones/Butcher è uno dei più utilizzati per il calcolo della data della Pasqua. Presentato da Meeus nel suo libro: Astronomical Algorithms (1991, p. 69), sfrutta le equazioni di Keplero per calcolare con esattezza la data del primo plenilunio successivo all’equinozio di primavera dell’anno in corso e successivamente la Pasqua.

algoritmo di Meeus

Algoritmo di Conway

L’algoritmo di Conway è un altro algoritmo popolare per il calcolo della data della Pasqua. Questo algoritmo sfrutta la conoscenza dei cicli metonici noti già agli antichi greci i quali si erano accorti che le fasi lunari si ripetono ogni 19 anni.
Gli algoritmi moderni, rispetto a quelli antichi, si basano sul calcolo di un termine correttivo detto “epatta” che serve ad allineare l’anno lunare all’anno solare.

algoritmo di Conway

Test degli algoritmi

Nel codice scaricabile qui sotto sono implementati gli UnitTest per le tre classi che implementano il calcolo della data usando i tre algoritmi descritti.

UnitTests

Conclusioni

Gli algoritmi per il calcolo della data della Pasqua sono un argomento interessante e importante per la Chiesa cristiana e per molte altre applicazioni. Meeus è il più preciso e performante, mentre Conway e Gauss sono forse più semplici da comprendere.
La scelta dell’algoritmo ovviamente dipende dalle esigenze applicative e dalle capacità del programmatore.


Se anche tu vuoi occuparti di progetti di sviluppo IT di ultima generazione
dai un’occhiata alle nostre opportunità di lavoro e conosciamoci subito!

Questo sito utilizza cookies propri e si riserva di utilizzare anche cookie di terze parti per garantire la funzionalità del sito e per tenere conto delle scelte di navigazione.
Per maggiori dettagli e sapere come negare il consenso a tutti o ad alcuni cookie è possibile consultare la Cookie Policy.

USO DEI COOKIE

Se abiliti i cookie nella tabella sottostante, ci autorizzi a memorizzare i tuoi comportamenti di utilizzo sul nostro sito web. Questo ci consente di migliorare il nostro sito web e di personalizzare le pubblicità. Se non abiliti i cookie, noi utilizzeremo solo cookies di sessione per migliorare la facilità di utilizzo.

Cookie tecnicinon richiedono il consenso, perciò vengono installati automaticamente a seguito dell’accesso al Sito.

Cookie di statisticaVengono utilizzati da terze parti, anche in forma disaggregata, per la gestione di statistiche

Cookie di social networkVengono utilizzati per la condivisione di contenuti sui social network.

Cookie di profilazione pubblicitariaVengono utilizzati per erogare pubblicità basata sugli interessi manifestati attraverso la navigazione in internet.

AltriCookie di terze parti da altri servizi di terze parti che non sono cookie di statistica, social media o pubblicitari.