Jedes Jahr befindet sich der Ostersonntag in einer anderen Woche? Aber welcher?
Die Antwort ist eben so einfach wie komplex: Man bestimme den ersten Sonntag nach dem ersten Vollmond im Frühling. (Wikipedia, Lizenz CC-BY-SA)
Das lässt sich dank Carl Friedrich Gauß ausrechnen, zusammen mit einigen Verbesserungen seines Algorithmus (Wikipedia).
Als Rechenwerkzeug nutze ich MATLAB, deswegen hier die Berechnung des Ostersonntages nach der ergänzten Gauß-Methode als MATLAB Code:
function ostersonntag = ostern(year) K = fix(year/100); % 1. Säkularzahl M = 15 + fix((3*K + 3)/4) - fix((8*K + 13)/25); % 2. säkulare Mondschaltung S = 2- fix((3*K + 3)/4); % 3. säkulare Sonnenschaltung A = mod(year,19); % 4. Mondparameter D = mod((19*A + M),30); % 5. Keim für den ersten Vollmond im Frühling R = fix((D + fix(A/11))/29); % 6. kalendarische Korrekturgröße OG = 21 + D - R; % 7. Ostergrenze SZ = 7 - mod((year + fix(year/4) + S),7); % 8. erster Sonntag im März OE = 7 - mod((OG - SZ),7); % 9. Entfernung des Ostersonntags von der Ostergrenze OS = OG + OE; % 10. Datum des Ostersonntags als Märzdatum ostersonntag = datetime(year,3,1) + OS - 1; % 11. Ostersonntag als Datum ostersonntag.Format = 'dd.MM.yyyy'; end
Den Ostersonntag in 2015 rechne ich nun aus mittels
eastersun = ostern(2015)
eastersun = 05.04.2015
Möchte ich die Daten aller Ostersonntage der Jahre 1000 bis 2500 wissen, rufe ich diese Funktion auf wie folgt:
eastersun = ostern(1000:2500);
Um herauszufinden, welche Tage besonders oft vorkommen, brauchen wir nur Monat und Tag in der Ausgabe. Die datetime-Klasse erlaubt das einfache Rechnen und manipulieren von Daten.
Das Jahr setzen wir auf 0, damit die Sortierung funktioniert.
eastersun.Format='dd.MM.';
eastersun.Year=0;
Das Histogramm ergibt dann die Anzahl der Ostersonntage für ein bestimmtes Datum:
hist(categorical(eastersun));
Dieses Histogramm verschönern wir noch ein wenig:
distri = gca; distri.XTickLabelRotation = 60; distri.YGrid = 'on'; distri.YMinorGrid = 'on';
Foto: Joachim Schlosser
Schreiben Sie einen Kommentar