terça-feira, 22 de setembro de 2009

Retorna a data do feriado de páscoa (útil para calendários)

Function Pascoa(ano: integer):TDate;
var
y,m,d: word;
g,i,j,c,h,l: integer;
e: TDate;
begin
G := ano mod 19;
C := ano div 100;
H := (C - C div 4 - (8*C+13) div 25 + 19*G + 15) mod 30;
I := H - (H div 28)*(1 -(H div 28)*(29 div (H+1))*((21 - G) div 11));
J := (ano + ano div 4 + I + 2 - C + C div 4) mod 7;
L := I - J;
m := 3 + (L + 40) div 44;
d := L + 28 - 31*(m div 4);
y := ano;
E := EncodeDate(y,m,d);
while DayofWeek (E) > 1 do
Result := E;
end;

Nenhum comentário:

Postar um comentário