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
Stem of voeg toe aanUitleg over het gebruik van deze icons :Voeg dit artikel toe aan Del.icio.us Voeg toe aan je Google bladwijzers Plaats dit bericht op Twitter Geef dit als tip aan je Hyves-vrienden Voeg toe aan je Facebook-profiel Deel met je LinkedIn-contacten Abonneer je op de RSS-feed van deze site Verstuur deze pagina per e-mail via Feedburner Print deze pagina of genereer een PDF-bestand