Trovare il giorno di Pasqua in Access



Una funzione che calcoli il giorno di Pasqua in Access è utile quando dobbiamo sapere l’unica data festiva variabile e cioè il lunedì dell’angelo ( Pasquetta ). In un gestionale che mi hanno commissionato alcuni anni fà dovevo mostrare un calendario con tutti i giorni festivi dell’anno per il lavoro dei dipendenti, ecco perchè mi sono dovuto implementare questa funzione, infatti basta aggiungere un giorno alla data della Pasqua ed il gioco è fatto. 

20091230pasqua

Il giorno di Pasqua è la prima domenica dopo il primo plenilunio dopo l’equinozio di primavera che è fisso al 21 marzo, altro punto fisso è la durata delle fasi lunari di 19 anni; con queste informazioni in base all’anno possiamo calcolare la data della Pasqua, che può cadere solo nei mesi di marzo ed aprile e questo è un  altro punto a nostro favore. Ma vediamo il codice della funzione:

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

Questa utilizzata è una delle tante varianti di calcolo, ma è senza dubbio la più semplice.

Un esempio completo con codice sorgente lo potete trovare sul nostro sito nella sezione download software.

Annunci sponsorizzati:
Condividi su Facebook Condividi su Twitter!
Pinterest