Home » Tipps & Tricks » Algorithmen » Feiertage » Ostern

Ostern

Folgender Tipp demonstriert, wie man das Datum des Ostersonntags (und damit das Datum vieler anderer beweglichen Feiertage) eines bestimmten Jahres berechnen kann. Ostern ist der 1. Sonntag nach dem 1. Frühjahrsvollmond und kann deshalb frühestens am 22.3. eines Jahres sein.

function Easter(AYear: Word): TDate;
var
  a, b, c: Integer;
  Day: Word;
begin
  a := AYear mod   19;
  b := (204 - 11 * a) mod 30;
  if b in [28, 29] then
    Dec(b);
  c := (AYear + AYear div 4 + b - 13) mod 7;
  Day := 28 + b - c;
  Result := EncodeDate(AYear, 3 + (Day div 32), ((Day - 1) mod 31) + 1);
end;

Der Parameter AYear bestimmt das Jahr, für das der Ostersonntag berechnet werden soll. Der Rückgabewert enthält dann das Datum des Tages.
Diese Variante ist eine vereinfachte Version der Gaußschen Osterformel, weshalb der gültige Bereich von 1900 bis 2099 begrenzt ist. Außerhalb dieses Bereichs funktioniert diese vereinfachte Formel nicht.