Autor: Peter Haserodt --- Aus Excel VBA - Gruppe:
Häufige FragenOstersonntag - korrigiert
Autor: Peter Haserodt - Erstellt: -- - Letzte Revision: 20101223
Die bekannte Hetterichformel nach VBA umgesetzt:
(Dankenswerter Weise wurde ich auf einen Fehler für das Jahr 2011 aufmerksam gemacht. Bei der Überprüfung ergaben sich dann weitere Fehler in bestimmten Jahre. Und es fiel mir wie Schuppen von denselbigen - klar, Excel hat ja das 1900 Schaltjahr Problem und das kann sich in bestimmten Situationen auswirken.
Option Explicit
Private Sub Teste_OsterSonntag()
Dim iJahr As Integer
iJahr = 2004
MsgBox "Ostersonntag: " & iJahr & " am " & _
Format(OsterSonntag(2004), "DD.MM.YYYY")
'Kleiner Zusatz
MsgBox "Pfingstsonntag: " & iJahr & " am " & _
Format(OsterSonntag(2004) + 50, "DD.MM.YYYY")
End Sub
Public Function OsterSonntag(DasJahr As Integer) As Long
'Frei nach der Hetterichformel
'Angepasst für VBA Peter Haserodt
'Ab Excel 2000 (VBA6) kann man Worksheetfuction.round
' durch Round ersetzen
'Gibt das Datum als Longwert zurück
' Korrigiert, da in bestimmten Jahren die einfache
' Übersetzung der Hetterichformel zu Fehlern führt.
'Dies liegt an der unterschiedlichen Behandlung des
' Jahres 1900 bezüglich seines Schaltjahres
OsterSonntag = _
WorksheetFunction.Round((CDate(Day(Minute(DasJahr / 38) / 2 + 55) + _
(IIf(Minute(DasJahr / 38) / 2 + _
55 < 60, 1, 0)) & ".4." & DasJahr) / 7), 0) * 7 - 6
End Function
Weitere Artikel der Gruppe: Häufige Fragen Aus Excel VBA
Nach oben