GetEasterSunday Routines
Returns the Date of Easter Sunday for given Year - based on current Calendar.

Unit
QESBPCSDateTime

Overloaded Variants
Function GetEasterSunday(const Year: Word): TDateTime;
Function GetEasterSunday(const Year: Integer): TDateTime;
Function GetEasterSunday(const DT: TDateTime): TDateTime;

Declaration
Function GetEasterSunday(const Year: Word): TDateTime;

Parameters
Year the Year to be processed - should be 4 digit, eg 1999.
DT the Date to be processed.

Category
Date/Time Arithmetic Routines
Year Based Arithmetic Routines

Implementation

function GetEasterSunday (const Year: Word): TDateTime;
var
     C, I, J, H, G, L: Integer;
     D, M: Word;
begin
     G := GetGoldenNumber (Year) - 1;
     C := Year 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 := (Year + Year 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);
     Result := OptEncodeDateW (Year, M, D);
End;

Declaration
Function GetEasterSunday(const Year: Integer): TDateTime;

Implementation

function GetEasterSunday (const Year: Integer): TDateTime;
var
     C, I, J, H, G, L: Integer;
     D, M: Integer;
begin
     G := GetGoldenNumber (Year) - 1;
     C := Year 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 := (Year + Year 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);
     Result := OptEncodeDateI (Year, M, D);
End;

Declaration
Function GetEasterSunday(const DT: TDateTime): TDateTime;

Implementation

function GetEasterSunday (const DT: TDateTime): TDateTime;
begin
     Result := GetEasterSunday (Date2Year (DT));
End;


HTML generated by Time2HELP
http://www.time2help.com