Olá,
Segue a dica de uma função um tanto complexa mas bem útil para nossos
sistemas,
com ela podemos identificar o dia em que cai o feriado de páscoa de
qualquer ano
passado.
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);
Result := E;
end;
Como utilizar?
var
dPascoa : TDateTime;
Begin
dPascoa := Pascoa(2011); // Passamos o ano 2011
Showmessage(` Em 2011 a páscoa é ` +
` dia ` + IntToStr(dPascoa.Day) + // Retornamos somente o dia da data
` de ` + FormatDateTime(`mmmm', dPascoa) ); // Retornamos o nome do
mês
formatado da data
End;
É isso aí, espero que tenham gostado e desejo Feliz Páscoa a todos. E
manerem no
chocolate .
Carlos Eduardo Paulino
cadu...@hotmail.com
[MorfikBR]
Blogs :
www.morfikbr.wordpress.com /
www.morfikbr.blogspot.com
Grupo :
http://br.groups.yahoo.com/group/Morfikbr/
Twitter :
www.twitter.com/morfikbr
Youtube :
http://www.youtube.com/morfikbr
Contato :
morf...@gmail.com /
morf...@yahoo.com.br