Schreiben Sie eine Klasse Datum, die Methoden zum Thema Datum bereitstellt.
Siehe auch Gregorianischer und julianischer Kalender
Einige Vorschläge für Methoden:
- public static bool IsLeapYear(int jahr)
Überprüft, ob die übergebene Zahl ein Schaltjahr darstellt.
- public static bool IsDate(int tag, int mon, int jahr)
Überprüft, ob das übergebene Datum ein gültiges Datum darstellt.
- public static int GetDayOfTheWeek( int tag, int monat, int jahr )
Ermittelt den Wochentag zu einem Datum.
- public static int[] GetEaster(int jahr)
Ermittelt den Ostersonntag zu einem übergebenen Jahr.
Wer die Übung Kalenderberechnungen gemacht hat, braucht diese
Methoden lediglich in eine neue Klasse kopieren.
Die Klasse soll später so ausgebaut werden, daß man auch Objekte von ihrem Typ
anlegen kann.
Wer auch noch das Pfingstdatum ermitteln will, kann zusätzlich eine Methode
public static int[] GetWhitSun(int jahr) oder
public static int[] GetPfingsten(int jahr)
schreiben.
Dazu habe ich aus der Gauß'schen Osterformel
eine Pfingstformel gemacht.
Pfingstformel (ohne Gewähr...)
Das Datum wird aus den Werten der beiden Größen d und e ermittelt. Um
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 : Pfingsten ist am 06.Juni
d==29 und e==6 , so gilt : Pfingsten ist am 07.Juni
ansonsten gilt
ist d+e<22, so ist Pfingsten am (10+d+e).Mai
ist d+e>=22, so ist Pfingsten am (d+e-21).Juni