Bewegliche Feiertage automatisch berechnen

Fⁿr einen Kalender, den ich in Access 97 verwalte, m÷chte ich mir die variablen Feiertage wie Ostern und so weiter berechnen. Existiert dafⁿr eine Formel?

Die genaue Berechnung der Ostertage hΣngt im wahrsten Sinne des Wortes vom Lauf des Mondes ab und ist dementsprechend schwierig. Zum Glⁿck mu▀ man sich die Mⁿhe nicht mehr machen: Der Mathematiker Gau▀ hat bereits vor langer Zeit ein Verfahren gefunden, das als Eingabe nur die Jahreszahl braucht. Mit seiner Hilfe kann Access auch die variablen Ostertage ermitteln. Die Umsetzung der Formel im Listing-Kasten oben ist in Visual Basic geschrieben und dementsprechend vielseitig anwendbar. Sie finden Sie als Textdatei auch auf der aktuellen WIN-Monats-CD und in den WIN-Online-Foren. Die Funktion gibt als Rⁿckgabewert den Ostersonntag als Datumswert wieder. Liegt dieser Tag erst einmal fest, k÷nnen Sie die ⁿbrigen beweglichen Feiertage darauf aufbauend errechnen (Tabelle unten). WIN-Autor Christian Hartnick arbeitet zur Zeit an einer DLL, die eine vollstΣndige Kalenderberechnung enthΣlt. Wir werden sie in einer der nΣchsten WIN-Ausgaben ver÷ffentlichen.

Function OsterSonntag (This_Year As Integer)╢
Dim ZErg1, ZErg2, ZErg3, ZErg4, ZErg5, ZErg6, ZErg7╢
ZErg1 = This_Year Mod 19 + 1╢
ZErg2 = Fix (This_Year / 100) + 1╢
ZErg3 = Fix (3 * ZErg2 / 4) - 12╢
ZErg4 = Fix ((8 * ZErg2 + 5) / 25) - 5╢
ZErg5 = Fix (5 * This_Year / 4) - ZErg3 - 10╢
ZErg6 =  (11 * ZErg1 + 20 + ZErg4 - ZErg3) Mod 30╢
If  (ZErg6 = 25 And ZErg1 > 11) Or _╢
ZErg6 = 24 Then ZErg6 = ZErg6 + 1╢
ZErg7 = 44 - ZErg6╢
If ZErg7 < 21 Then ZErg7 = ZErg7 + 30╢
ZErg7 = ZErg7 + 7╢
ZErg7 = ZErg7 -  (ZErg5 + ZErg7) Mod 7╢
If ZErg7 <= 31 Then╢
OsterSonntag = CDate (CStr (ZErg7) & _╢
ô. 3. ô & CStr (This_Year))╢
Else╢
OsterSonntag = DateValue (CStr (ZErg7 - 31) & _╢
ô. 4. ô & CStr (This_Year))╢
End If╢
End Function╢