Categories: Office

La Data di Pasqua in Access

Ci sono vari siti che consentono di calcolare il giorno di pasqua a partire dall’anno ed altri che consentono di calcolare tante altre cose. In questo piccolo tutorial vedremo come implementare delle funzioni per il calcolo del giorno della Pasqua in VBA per Access e quindi portabile a tutti i programmi scritti in Visual Basic, basteranno solo alcuni piccoli ritocchi. Nei software gestionali che gestiscono il lavoro degli operai è importante sapere questa data anno per anno perchè la Pasquetta è l’unico giorno dell’anno festivo non fisso. Il giorno della Pasqua viene calcolato come la prima domenica dopo il primo plenilunio dopo l’equinozio di primavera che cade sempre il 21 marzo. Da questa semplice regola si può osservare che è possibile calcolare questa data perchè segue il ciclo delle fasi lunari che ha una cadenza fissa di 19 anni e quindi passiamo a creare la nostra funzione. Per prima cosa creiamo un database Access e poi una maschera, in visualizzazione struttura inseriamo un controllo edit per prendere l’anno, un campo di edit per ritornare la data ed un button da premere per il calcolo. A questo punto scriviamo la nostra funzione per il calcolo del giorno di pasqua:

Public Function CalcEaster(iAnno As Integer) As String
   Dim arrGm, arrDa As Variant,
        iA, iB, iC, iD, iE, iG As Integer
   Dim iDay, iMonth As Integer

   arrGm = Array(22, 22, 23, 23, 24, 24)
   arrDa = Array(2, 2, 3, 4, 5, 5)

   iA = iAnno Mod 19
   iB = iAnno Mod 4
   iC = iAnno Mod 7
   iD = CInt((iAnno / 100) - 15)
   iE = (19 * iA + arrGm(iD)) Mod 30
   iG = (2 * iB + 4 * iC + 6 * iE + arrDa(iD)) Mod 7
   iDay = 22 + iE + iG
   iMonth = 3
   If iDay > 31 Then
      iMonth = 4
      iDay = iDay - 31
   End If

   CalcEaster = CStr(iDay) + "/" + CStr(iMonth) + "/" +
        CStr(iAnno)

End Function

Come vedete tutto viene calcolato su dei giorni fissi sistemati in 2 array, il ciclo lunare ogni 19 anni e l’anno se bisestile, nel qual caso abbiamo un giorno in più. Il resto è tratto dai tanti algoritmi presenti sul web ed ho scelto il più semplice e breve. In ultima analisi se il giorno è maggiore di 31 viene inserito il mese ad aprile ed il giorno diminuito di 31 per l’appunto; questo perchè la pasqua può rientrare solo nei mesi di marzo o aprile. Il codice sorgente di questo tutorial lo potete trovate nella sezione download del nostro sito.

Share
Giampaolo Rossi

Sviluppatore di software gestionale da oltre 28 anni.

Recent Posts

MerciGest: il gestionale di magazzino semplice e gratuito

MerciGest è il software gestionale gratuito per Windows che semplifica la gestione del magazzino: giacenze,…

4 giorni ago

Software gestionali con SQL Server: un archivio unico, accessibile ovunque

Tutti i nostri software gestionali possono essere collegati a un database SQL Server, consentendo l’accesso…

6 giorni ago

Come iniziare ad usare MerciGest in 5 minuti

MerciGest è semplice e immediato: basta scaricare e installare il programma per iniziare subito. Al…

1 settimana ago

Cos’è MerciGest e a chi serve

MerciGest è un gestionale di magazzino per Windows pensato per negozi, piccole imprese e artigiani…

1 settimana ago

Introduzione alla Standard Template Library (STL)

La Standard Template Library (STL) è una delle componenti più potenti del C++. Fornisce una…

7 mesi ago

Un Abbonamento per Tutti i Software

Sono arrivato alla convinzione che un abbonamento per tutti i miei software gestionali sia il…

2 anni ago