Osterformel
#1
Question 
Hallo zusammen,

gibt es vielleicht jemanden der mir folgende Formel erklären könnte? Ich würde gerne den genauen Berechnungsweg verstehen.

=DATUM($F2;3;28)+REST(24-REST($F2;19)*10,63;29)-REST(KÜRZEN($F2*5/4)+REST(24-REST($F2;19)*10,63;29)+1;7)

Mit freundlichen Grüßen Oliver
to top
#2
Hallo,

ist zwar nicht genau die gleiche Formel aber vielleicht hilft das ein wenig weiter:

http://www.excelformeln.de/formeln.html?welcher=3
https://de.wikipedia.org/wiki/Osterdatum...errechnung
Gruß
Peter
to top
#3
Auch Hallo!
Ja, die Formelkünstler nötigen mir Hochachtung ab!
Ich persönlich halte es eher mit Lichtenberg (überarbeitete Gauß-Formel):

http://de.wikipedia.org/wiki/Gau%C3%9Fsc...sterformel

Ich habe mir daraus eine VBA-Funktion geschrieben, die für mich leichter nachvollziehbar ist:
Code:
Function Ostersonntag(ByVal j As Integer) As Date
' Ergänzte Gauß-Formel nach Heiner Lichtenberg (1997)
' http://de.wikipedia.org/wiki/Gau%C3%9Fsche_Osterformel#Eine_erg.C3.A4nzte_Osterformel

' Variablenbedeutung
' x(1) = Säkularzahl
' x(2) = säkulare Mondschaltung
' x(3) = säkulare Sonnenschaltung
' x(4) = Mondparameter
' x(5) = Keim für ersten Frühlingsvollmond
' x(6) = kalendarische Korrekturgröße
' x(7) = Ostergrenze
' x(8) = erster Sonntag im März
' x(9) = Osterentfernung in Tagen
' x(10) = Datum des Ostersonntags als Märzdatum (32. März = 1. April usw.)

Dim x(1 To 10) As Long
x(1) = j \ 100
x(2) = 15 + (3 * x(1) + 3) \ 4 - (8 * x(1) + 13) \ 25
x(3) = 2 - (3 * x(1) + 3) \ 4
x(4) = j Mod 19
x(5) = (19 * x(4) + x(2)) Mod 30
x(6) = (x(5) + x(4) \ 11) \ 29
x(7) = 21 + x(5) - x(6)
x(8) = 7 - (j + j \ 4 + x(3)) Mod 7
x(9) = 7 - (x(7) - x(8)) Mod 7
x(10) = x(7) + x(9)
If x(10) <= 31 Then
    Ostersonntag = j & "/03/" & x(10)
Else
    Ostersonntag = j & "/04/" & x(10) - 31
End If
End Function

Ergibt:

Tabelle1

AB
1201505.04.2015
Formeln der Tabelle
ZelleFormel
B1=Ostersonntag(A1)

Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4.8

Gruß, Ralf
to top
#4
Hallo,

erstmal danke für das nette Beispiel, bin zwar kein VBA Spezi aber zumindest hilft es mir etwas dabei den Rechnungsweg zu verstehen...

Mit freundlichen Grüßen Oliver
to top
#5
Hallo,

hier noch eine Funktion:

Public Function Ostern(Yr As Integer)
Dim d As Integer
d = (((255 - 11 * (Yr Mod 19)) - 21) Mod 30) + 21
Ostern = DateSerial(Yr, 3, 1) + d + (d > 48) + 6 - ((Yr + Yr \ 4 + d + (d > 48) + 1) Mod 7)
End Function

Keine Ahnung mehr wo ich die herhabe und m.W. rechnet die Funktion auch nur bis 2099 korrekt.
Gruß
Peter
to top
#6
Hi Peter,

(27.01.2015, 09:42)Peter schrieb: Keine Ahnung mehr wo ich die herhabe und m.W. rechnet die Funktion auch nur bis 2099 korrekt.

da muß ich leider sagen:
nach 2099 ist es mir dann auch egal.
to top
#7
Danke für die Formel Peter,

und ja, nach 2099 dürfte es kaum von Interesse sein für die hier Anwesenden, das Computer-Zeitalter entwickelt sich so rasend schnell, wer weiß wie wir es in 20 Jahren berechnen und ob es Excel dann überhaupt noch gibt... 26



Gruß Oliver
to top
#8
Hi!
Mal ein böser Kommentar meinerseits:
Wer weiß, ob dann noch jemand weiß, was Ostern ist ... 21
(Zumindest meinen ja manche in Dresden, dass sich das schon früher erledigt)

Gruß, Ralf
to top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste