Nee het is geen typefout: er staat echt Pasen in de titel en geen Kerst! Het is een beetje een dooddoener; een antwoord dat je bijvoorbeeld kunt geven als je kinderen vragen wanneer we naar Disneyland gaan… “Als Pasen en Pinksteren op dezelfde dag vallen”, zeg je dan, of “Als Pasen op een vrijdag valt”. Dit jaar valt eerste Kerstdag echter wel op een vrijdag. Er zijn vast veel mensen die het jammer vinden dat ze dit jaar op tweede Kerstdag geen extra vrije dag hebben. Het is nu eenmaal een vaststaand feit dat we ieder jaar op 25 en 26 december Kerst vieren. De datum waarop het Paasfeest gevierd wordt, is minder makkelijk te achterhalen.Het Paasfeest wordt in het Christendom in principe gevierd op de eerste zondag na de eerste volle maan in de lente. In mijn vorige blog schreef ik over twee applicaties waarbij wat met datums gerekend moest worden. Hierbij gebruikte ik een tabel met feestdagen. Om deze tabel met een aantal vaste feestdagen te vullen, kun je natuurlijk snel de bijbehorende datums opzoeken in je zakagenda of op Internet. Je kunt ook de datum van de Paaszondag berekenen en hiermee alle gerelateerde feestdagen toevoegen (2e Paasdag, Goede Vrijdag, Hemelvaartsdag en de beide Pinksterdagen. Het algoritme is bedacht door de wiskundige Gauss. Om hiermee een tabel te vullen, is natuurlijk wat omslachtiger maar geeft meer voldoening dan datums overtypen. Ik geef jullie hierbij vast de vb.net code. Misschien aardig om voor de fun iets mee te maken tijdens de komende Kerstdagen.
Public Function BerekenPaaszondag(ByVal jaar As Long) As Date Dim maand As String Dim dag As Integer Dim datum As String ' GAUSS Dim a As Integer Dim b As Integer Dim c As Integer Dim d As Integer Dim e As Integer a = jaar Mod 19 b = jaar Mod 4 c = jaar Mod 7 d = (19 * a + 23) Mod 30 e = (2 * b + 4 * c + 6 * d + 5) Mod 7 If e = 0 Then e = 7 If d + e < = 9 Then maand = "03" dag = 22 + d + e Else maand = "04" dag = d + e - 9 End If datum = Microsoft.VisualBasic.Right("0" & dag.ToString, 2) & "-" & maand & "-" & jaar BerekenPaaszondag = CDate(datum) End Function End Function

