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.
Sono arrivato alla convinzione che un abbonamento per tutti i miei software gestionali sia il…
MerciGest è un software per la gestione del magazzino completamente gratuito. Continua a leggere→
In ufficio può capitare di doversi allontanare dal proprio posto di lavoro, ecco che allora…
In questo articolo vedremo quando è più o meno utile togliere la corrente ad un…
Dopo la pausa invernale dovuta al lavoro che devo fare per sostentarmi, eccomi di nuovo…
Vediamo come eliminare i files direttamente da Windows senza utilizzare il cestino. Continua a leggere→