Dica - Retornar a data do feriado de Páscoa

2 views
Skip to first unread message

Carlos Eduardo Paulino

unread,
May 1, 2011, 8:42:34 PM5/1/11
to MorfikBR
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
Reply all
Reply to author
Forward
0 new messages