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

Un Abbonamento per Tutti i Software

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

10 mesi ago

Software di Magazzino Gratuito

MerciGest è un software per la gestione del magazzino completamente gratuito. Continua a leggere→

11 mesi ago

Mettere il PC in Lock Screen

In ufficio può capitare di doversi allontanare dal proprio posto di lavoro, ecco che allora…

3 anni ago

Fare il reset togliendo la corrente

In questo articolo vedremo quando è più o meno utile togliere la corrente ad un…

3 anni ago

Prossimi Aggiornamenti Software

Dopo la pausa invernale dovuta al lavoro che devo fare per sostentarmi, eccomi di nuovo…

3 anni ago

Come Eliminare i Files in Windows

Vediamo come eliminare i files direttamente da Windows senza utilizzare il cestino. Continua a leggere→

3 anni ago