Einzelnen Beitrag anzeigen

Assertor

Registriert seit: 4. Feb 2006
Ort: Hamburg
1.296 Beiträge
 
Turbo C++
 
#15

Re: Osterformel nach Computus ecclesiasticus

  Alt 9. Mär 2010, 21:28
Hallo Wolfang,

ich habe den Code im Rahmen meiner 3-minütigen Tageslangeweile mal entsprechend der üblichen Gegenbenheiten unter uns Delphi Entwicklern etwas umformatiert.

Delphi-Quellcode:
// Osterformel mit computus ecclesiasticus
function GetEasterDate(Jahr: Integer): TDate; // Jahr des gregorianischen Kalenders
var
  G, X, Z, D, E, N: Integer;
  Jahrhundert,
  Tag,
  Monat: Integer;
  MyDate: TDate;
begin
  G := (Jahr mod 19) + 1;
  Jahrhundert := Jahr div 100 + 1;
  X := 3 * Jahrhundert div 4 - 12;
  Z := (8 * Jahrhundert + 5) div 25 - 5;
  D := (5 * Jahr) div 4 - X - 10;
  E := (11 * G + 20 + Z - X) mod 30;
  if ((E = 25) and (G > 11)) or (E = 24) then // Klammerung?
    Inc(E);
  N := 44 - E;
  if N < 21 then
    Inc(N, 30);
  N := N + 7 - (D + N) mod 7;
  if N > 31 then
  begin
    Tag := n - 31; // (n-31).April
    Monat := 4;
  end
  else
  begin
    Tag := N; // n.März
    Monat := 3;
  end;
  {------Soweit der Originalcode---------}
  MyDate := EncodeDate(Jahr, Monat, Tag);
  Result := MyDate;
end;
Ich habe die Klammerung für den Vergleich von E angepasst: Wenn E = 25 und G > 11 soll E um 1 erhöht werden, ebenso im Falle E = 24.

Quelle: http://user.cs.tu-berlin.de/~csadm/w...01/blatt01.pdf

Gruß,
Assertor

P.S.: Unabhängig vom Nutzen, gerne weiter so!
Frederik
  Mit Zitat antworten Zitat