Hab mich jetzt für die Gauß-Version von 1816 nach Wikipedia entschieden. Ob sie stimmt wird sich zeigen. Zumindest fällt jedes Datum auf einen Sonntag und passt 1:1 zu der Excel-Vergleichsformel mit 4 Hilfszahlen. Wen es interessiert hier die VBA-Version:
Sub Test()
x = Ostersonntag4(2023)
End Sub
Function Ostersonntag4(Jahr As Integer) As Date
'von https://de.wikipedia.org/wiki/Gau%C3%9Fsche_Osterformel
'Version 1816 mit Ausnahmen
a = Int(Jahr Mod 19)
b = Int(Jahr Mod 4)
c = Int(Jahr Mod 7)
k = Int(Jahr / 100)
p = Int((8 * k + 13) / 25)
q = Int(k / 4)
M = Int((15 + k - p - q) Mod 30)
d = Int((19 * a + M) Mod 30)
N = Int((4 + k - q) Mod 7)
e = Int((2 * b + 4 * c + 6 * d + N) Mod 7)
If d = 29 And e = 6 Then
O = 50
ElseIf d = 28 And e = 6 And a > 10 Then
O = 49
Else
O = (22 + d + e)
End If
Ostersonntag4 = DateSerial(Jahr, 3, O)
End Function
Function dFormat(dat As Date) As String
dFormat = Format(dat, "ddd dd.MM.yyyy")
End Function
Als Benutzerformel:
- wenn das Jahr in A1 steht und >= 1900 ist: =Ostersonntag4(A1) und als Datum formatieren. (z.B. TTT TT.MM.JJJJ)
- wenn das Jahr in A1 steht und < 1900 ist: =dFormat(Ostersonntag4(A1))
bei 10000 Jahren dauert die Berechnung zwar etwas länger als mit reiner Excel-Berechnung aber damit kann ich leben.
Natürlich kann ich nicht in die Zukunft schauen. Es heißt ja der Mond wird immer langsamer, ob das Gauß schon mit einbezogen hat, weiß ich nicht.
Trotzdem Danke an Alle die sich diesen Thread angesehen haben.
Gruß Mr. K.
|