Kurzmeldungen
Praxis Barbara SpahniBarbara eröffnet ihre Praxis für psychologische Beratung und Triple P
GeoCaching
Der GPS-Spass für die ganze Familie
EGOV 2008
Seventh international EGOV conference 2008
Weitere News...
Ewiger Kalender
Erstellen Sie sich Ihren persönlichen Kalender !
Mit dem Kalender können Sie sich Ihren persönlichen Kalendern zusammenstellen. Wählen Sie im Formular den ersten Monat, die benötigte Anzahl der darzustellenden Monate in gewünschter Spaltenzahl. Mit der "Liste Feiertage" erhalten Sie zudem eine Zusammenstellung der Feiertage (gültig für die deutsche Schweiz) von höchstens 2 Jahren rückwärts vom letzten angezeigten Kalendertag. Zum Ausrucken gibt's den Kalender auch ohne Formular (siehe Option im Formular).
Beachten Sie die ToolTipps (Datumsangabe, Angabe über Feiertage) !
Zur Berechnung des ewigen Kalenders
Ziel eines kleinen Freizeitprojektes war es, einen Kalendergenerator bereitstellen zu können. Auf dem Weg dorthin waren verschiedene Grundlagen zu beschaffen, angefangen bei geschichtlichen Hintergründen des astronomischen Kalenderwesens (Definition eines Jahres, Julianischer und Gregorianischer Kalender, Osterdaten von 1901 bis 2078) aus dem Münchner Astro Archiv MAA bis hin zur Darstellung der gesetzlichen Zeit.
Nach der Bestimmung der korrekten Wochenzahl (die erste Woche des Jahres ist die erste, mindestens eine 4 Tage lange Woche) waren die Feiertage zu ermitteln. Neben den auf bestimmte Daten fixierte Feiertage wie z.B. Weihnachten, war der Ostersonntag zu berechnen. Anhand von diesem Sonntag werden wiederum weitere Feiertage ermittelt wie Auffahrt und Pfingsten.
Schliesslich lieferten verschiedene Quellen unterschiedliche Algorithmen zur Berechnung des Osterdatums (siehe Vergleich):
Meine JavaScript Funktion basiert auf der Version von Lichtenberg und benötigt die Jahreszahl als Parameter (im Bereich 1900 bis 2099, wird aber nicht überprüft!) und liefert als Ergebnis den Ostersonntag als ein Objekt vom Typ Date.
| function
CalcOstern(JahresZahl) { var K = parseInt(JahresZahl / 100); var M = 15 + parseInt((3 * K + 3) / 4) - parseInt((8 * K + 13) / 25); var S = 2 - parseInt((3 * K + 3) / 4); var A = JahresZahl % 19; var D = (19 * A + M) % 30; var R = parseInt(D / 29) + (parseInt(D / 28) - parseInt(D / 29)) * parseInt(A / 11); var OG = 21 + D - R; var SZ = 7 - (JahresZahl + parseInt(JahresZahl / 4) + S) % 7; var OE = 7 - ((OG - SZ) % 7); return new Date(JahresZahl,2,(OG+OE)); } |
Vergleich der Algorithmen zur Berechnung des Datums von Ostersonntag
Quellenangaben:
- Lichtenberg: http://www.ptb.de/deutsch/org/4/43/432/oste.htm
- Wünsche: http://www.maa.mhn.de/StarDate/feiertage.html
- Herger: http://www.jo-sac.ch/sbinteam/examples/easter.htm
Diese Algorithmen habe ich in JavaScript übersetzt. Lassen Sie sich einfach den Quelltext von dieser Seite anzeigen!
Die implementierten Algorithmen liefern in den Jahren 1900-2099 identische Ergebnisse, obschon z.B. bei Wünsche der Zeitraum auf 1901 bis 2078 eingeschränkt wird.
Die Algorithmen von Wünsche und Herger sind bis auf die Teilbedingung (e==6) in einer Fallunterscheidung identisch, liefern aber selbst für die Jahre 0 bis 2999 identische Ergebnisse. Ist diese Teilbedingung also unnötig?
Ein Vergleich über die Jahre 500 bis 2999 (siehe Tabelle unten) zeigt, dass die Daten von Wünsche/Herger sich zumeist pro Jahrhundert um eine konstante Anzahl von Tagen von den Ergebnissen von Lichtenberg unterscheiden. Letzterer liefert grundsätzlich Sonntage und ist daher plausibler.
Bitte warten! Die folgende Tabelle wird auf Ihrem PC mit JavaScript erzeugt! Die Berechnungen können bei weniger leistungsfähigen PCs länger dauern, als dem Browser lieb ist. Oftmals fragt Sie der Browser deshalb, ob Sie die Berechnungen abbrechen möchten...
In der Tabelle wird das Datum (MM-TT) und der Wochentag (So=0, Mo=1, Di=2, ..., Sa=6) ausgewiesen.
| Jahr | Lichtenberg | Wünsche | Herger |