Eine weitere kleine Formel des jungen Gauß ermöglicht die Ermittlung des Osterdatums,
genauer gesagt des Ostersonntags. Schreiben Sie ein Programm, daß zu einer vom Benutzer eingegebenen
Jahreszahl das Osterdatum ermittelt. Damit die Formel funktioniert, muß die Jahreszahl zwischen
1582 und 3000 liegen.
Das Osterdatum ergibt sich dann folgendermaßen :
Das Datum wird aus den Werten der beiden Größen d und e ermittelt. Um
allerdings diese zu erhalten braucht man eine eine Reihe von Hilfsgrößen, die wir
a, b, c, p, q, r, x und y nennen. Beachten Sie, wie die Hilfsgrößen
voneinander abhängen.
p = jahr div 100 |
q = p div 3 | r = p div 4 |
x = (15+p-q-r) mod 30 | y = (4+p-r) mod 7 |
a = jahr mod 19 | b = jahr mod 4 |
c = jahr mod 7 |
d = (19*a+x) mod 30 |
e = (2*b+4*c+6*d+y) mod 7 |
Jetzt kann man d und e auswerten
d==28 und e==6 , so gilt : Ostern ist am 18.April
d==29 und e==6 , so gilt : Ostern ist am 19.April
ansonsten gilt
ist 22+d+e < 32 , so folgt : Ostern ist am (22+d+e). März
ist 22+d+e >=32 , so folgt : Ostern ist am (d+e-9). April
Zusatzaufgaben:
-
Stellen Sie fest, wann im Zeitraum zwischen 1582 und 3000 der früheste Ostertermin
und der späteste Ostertermin ist.
-
Stellen Sie an Hand des Osterdatums das Pfingstdatum fest
( Pfingsten ist 7 Wochen nach Ostern )
-
Stellen Sie an Hand des Osterdatums das Datums von Aschermittwoch fest
( Faschingssonntag ist 7 Wochen vor Ostern )
Erläuterung :
-
div ist der Operator für Ganzzahldivision, so gilt etwa 15 div 7 = 2 , da 7 in 15 zweimal enthalten
ist. Der Rest wird dabei nicht berücksichtigt, analog 17 div 3 = 5 . In Java (wie in C/C++) wird
die Ganzzahldivision realisiert durch a/b , wenn a und b Ganzzahltypen (int, long, short, byte) sind.
-
mod ist der Restoperator, so gilt etwa 15 mod 7 = 1 , da 15 geteilt 7 den Rest 1 ergibt. Der ganze
Anteil wird dabei nicht berücksichtigt, analog 17 mod 3 = 2 . In Java (wie in C/C++) wird
der Restoperator realisiert durch a%b .
Sie auch Arithmetische Operatoren
Siehe auch Gregorianischer und julianischer Kalender