Die deutschsprachige Wikipedia beschrieb unter dem Stichwort Osterdatum unter der Überschrift "Berechnung des Osterdatums" ab der Version "08:25, 22. Apr. 2003" bis zu der Version "12:00, 28. Jan. 2009" (zu finden unter dem Tab-Reiter "Versionsgeschichte", siehe [de.wikipedia.org] im Literaturvereichnis unten) den folgenden schönen Algorithmus, den ich für den Julianischen Kalender bereits in meinem ersten einschlägigen Artikel [Lewin 2005] (allerdings fehlerhaft mit einem ausgelassenen Zwischenschritt) beschrieben hatte.
Dieser Algorithmus stammte von Claus Tøndering. Seine eigene Formulierung des Algorithmus ist zur Zeit der Abfassung dieser Webseite (März 2024) zu finden unter Isn’t there a simpler way to calculate Easter? (Gibt es keinen einfacheren Weg, Ostern zu berechnen?).
Julianischer Kalender | Gregorianischer Kalender | Bedeutung |
G = Jahr mod 19 | G = Jahr mod 19 | Mondparameter, Goldene Zahl - 1, Silberne Zahl |
C = Jahr ÷ 100 | Jahrhundert (÷ ist die Integer-Division) | |
H = ( C - C ÷ 4 - ( 8 × C + 13 ) ÷ 25 + 19 × G + 15 ) mod 30 | H ist (23 - Epakte) modulo 30 | |
I = ( 19 × G + 15 ) mod 30 | I = H - H ÷ 28 × ( 1 - 29 ÷ ( H + 1 ) ) × ( ( 21 - G ) ÷ 11 ) | Grenzzahl (Abstand des Ostermondes vom 21. März) |
J = ( Jahr + Jahr ÷ 4 + I ) mod 7 | J = ( Jahr + Jahr ÷ 4 + I + 2 - C + C ÷ 4 ) mod 7 | Wochentag des Ostermondes (0 = Sonntag, 1 = Montag, ... 6 = Samstag) |
OM = 21 + I | OM = 21 + I | Ostermond, auch Ostergrenze (1) |
L = I - J | L = I - J | Anzahl der Tage vom 21. März bis zum Sonntag am oder vor dem Ostermond (eine Zahl zwischen -6 und 28) |
Ostermonat = 3 + ( L + 40 ) ÷ 44 | Ostermonat = 3 + ( L + 40 ) ÷ 44 (2) | |
Ostertag = L + 28 - 31 × ( Ostermonat ÷ 4 ) | Ostertag = L + 28 - 31 × ( Ostermonat ÷ 4 ) (3) |
Anmerkungen:
(1) von mir eingefügt, nicht aus Wikipedia und auch nicht explizit bei Tøndering, jedoch erschließbar aus seiner Festlegung der Bedeutung von I
(2) in Wikipedia ab Version 1:51, 25. Mär. 2008 geändert in: Falls L < 4 dann Ostermonat = 3, andernfalls Ostermonat = 4
(3) in Wikipedia ab Version 1:51, 25. Mär. 2008 geändert in: Falls L < 4 dann Ostertag = L + 28, andernfalls Ostertag = L - 3
(Hier Microsoft Excel 2007, deutschsprachige Lizenz)
Ich zeige hier nur die Lösung für den Julianischen Kalender.
Feld |
Inhalt |
Bedeutung |
A1 |
'Jahr |
Jahreszahl |
B1 |
'G |
Silberne Zahl = Goldene Zahl - 1 |
C1 |
'I |
Grenzzahl (Abstand des Ostermondes vom 21. März) |
D1 |
'J |
Wochentag des Ostermondes (So=0, Mo=1, Di=2, Mi=3, DO=4, Fr=5,Sa=6) |
E1 |
'L |
I-J, Anzahl der Tage vom 21. März bis zum Sonntag am oder vor dem Ostermond (eine Zahl zwischen -6 und 28) |
F1 |
'OM |
Tag des Ostermonds, gezählt ab 1. März |
G1 |
'OS |
Tag des Ostersonntags, gezählt ab 1. März |
A2 |
532 |
Startjahr |
B2 |
=REST(A2;19) |
|
C2 |
=REST((19*B2+15);30) |
|
D2 |
=REST((A2+GANZZAHL(A2/4)+C2);7) |
|
E2 |
=C2-D2 |
|
F2 |
=21+C2 |
|
G2 |
=28+E2 |
|
A3 |
=A2+1 |
|
B3:G3 |
Kopie von B2:G2 |
|
A4:G96 |
Kopie von A3:G3 |
Jahr G I J L OM OS 532 0 15 1 14 36 42 533 1 4 5 -1 25 27 534 2 23 4 19 44 47 535 3 12 1 11 33 39 536 4 1 6 -5 22 23 537 5 20 5 15 41 43 538 6 9 2 7 30 35 539 7 28 1 27 49 55 540 8 17 6 11 38 39 541 9 6 3 3 27 31 542 10 25 2 23 46 51 543 11 14 6 8 35 36 544 12 3 4 -1 24 27 545 13 22 3 19 43 47 546 14 11 0 11 32 39 547 15 0 4 -4 21 24 548 16 19 4 15 40 43 549 17 8 1 7 29 35 550 18 27 0 27 48 55 ...
function DaynumberToDayAndMonth( daynumber ) { // assert( daynumber > 0 && daynumber < 62 ); if ( daynumber <= 31 ) { this.dd = daynumber; this.mm = 3; } else { this.dd = daynumber - 31; this.mm = 4; } return this; } function div( a, b ) { // integer division return floor( a / b ); } function TonderingGregorianEasterTableLine( jr ) { // assert( jr >= 0 && jr <= 4999 ); var c = div( jr, 100 ); var p = div( 8 * c + 13, 25 ); var h = ( c - div( c, 4 ) - p + 19 * this.w_g + 15 ) % 30; var i = h - div( h, 28 ) * ( 1 - div( 29, h + 1 ) * div( 21 - g, 11 ) ); var j = ( jr + div( jr, 4 ) + i + 2 - c + div( c, 4 ) ) % 7 ; this.w_h = h; this.w_i = i; this.w_j = j; return this; } function TonderingJulianEasterTableLine( jr ) { // assert( jr >= 0 && jr <= 4999 ); this.w_h = ""; this.w_i= (( 19 * this.w_g + 15 ) % 30 ); this.w_j = ( jr + div( jr, 4 ) + this_w_i ) % 7; return this; } function TonderingEasterTableLine( jr, cal ) { // assert( jr >= 0 && jr <= 4999 ); this.w_jr = jr; this.w_g = jr % 19; switch ( cal ) { case 'J': // Julian calendar ee = TonderingJulianEasterTableLine( jr ); break; case 'G': // Gregorian calendar ee = TonderingGregorianEasterTableLine( jr ); break; case 'A': // Occidental calendar ("Abendländischer Kalender") ee = ( jr <= 1582 ) ? TonderingJulianEasterTableLine( jr ) : TonderingGregorianEasterTableLine( jr ); break; } this.w_l = this.w_i - this.w_j; this.w_om = 21 + this.w_i; this.w_os = 28 + this.w_l; return this; } function TonderingEasterTable( annus, times, cal, outputformatter ) { // assert( annus >= 0 && annus <= 4996 ); // assert( times >= 4 && times <= 532 ); for ( let jr = annus; jr < annus + times; jr++ ) { var line = TonderingEasterTableLine( jr, cal ); outputformatter( line ); } }
Wenn Sie auf den unten folgenden Knopf klicken, dann erscheint zum Vergleich
mit dem weiter oben gezeigten ersten 19-jährigen Abschnitt der Ausgabe des Tabellenkalkulationsprogramms
eine nach dem soeben erschlossenen Algorithmus mit den gezeigten JavaScript-Funktionen
erzeugte Berechnung der Ostermond- und Ostersonntagsdaten mit allen Zwischenergebnissen..
Einen Osterrechner mit diesem Algorithmus, bei dem Sie das Startjahr, die Anzahl der Jahre
und die Art des Kalenders (Julianisch, Gregorianisch, Abendländisch
(d.h. Julianisch bis 1582, Gregorianisch ab 1583))
wählen können, finden Sie unter
Die Osterrechnung
von Claus Tøndering als Tabellenrechner.
de.wikipedia: Stichwort Osterdatum, dort unter dem Tab-Reiter "Versionsgeschichte" auf "älteste" klicken, ab der Version "08:25, 22. Apr. 2003" bis zu der Version "12:00, 28. Jan. 2009" jeweils unter der Überschrift "Berechnung des Osterdatums"
Lewin, Karl-Heinz (2005): Komputistik contra Phantomzeitthese. Führt der Computus Paschalis die Phantomzeitthese ad absurdum?; ZS 17 (2) 455-464; (22023): https://com-pas.de/computuspaschalis/1cyclopaschalisravenna.de.htm
Tøndering, Claus (o. J.): Easter;
https://www.tondering.dk/claus/cal/easter.php;
sein Algorithmus findet sich im Abschnitt mit der Überschrift
"Isn’t there a simpler way to calculate Easter?" (Gibt es keinen einfacheren Weg, Ostern zu berechnen?).
Diese Webseite wurde nach Ostern 2011 erstellt, da Tøndering sich auf Ostern 2001 als ein Ereignis
in der Verganbgenheit bezieht ("When was Easter 2011?"). Aber sein Algorithmus war unter dem Titel
"Calendar FAQ" auf URL http://www.tondering.dk/claus/calendar.html mindestens vor dem 22. März 2003
im Internet zugänglich, da der Wikipedia-Benutzeer "Flups", der die oben angegebene Version
der Wikipedia-Seite "Osterdatum" mit Tønderings Algorithmus erstellt hatte, auf diesen Titel
mit der angegebenen URL und auf den (zweifach falsch geschriebenen) Namen "Klaus Tondering" verwies.
Der Autor ist Mathematiker und arbeitete als Software-Entwickler.
Karl-Heinz Lewin, Haar: karl-heinz.lewin@t-online.de
Copyright © Karl-Heinz Lewin, 2024