Sunday, November 12, 2006

Zde je tedy zdrojový kód,

parametrem funkce je znovu rok, na výstupu se nám vrátí datum opět v podobě TDateTime.
function Velikonoce(Rok : integer) : TDateTime;
var R1, R2, R3, X, Y, Z: Double;
Tmp : integer;

begin
R1 := Rok mod 19;
R2 := Rok mod 4;
R3 := Rok mod 7;
X := 19 * R1 + 24;
Y := X - (Int(x / 30) * 30);
Z:=(5 + 2 * R2 + 4 * R3 + 6 * Y);
Tmp := Trunc((Z - (Int(Z / 7) *7)) + Y + 22);
if Tmp <= 31 then Result := EncodeDate(Rok, 3, Tmp)
else
begin
if Tmp -31 >= 26 then Tmp := 19
else Dec(Tmp, 31);
Result := EncodeDate(Rok, 4, Tmp);
end;
end;