| AdjustDateYear Routines | 
Unit
QESBPCSDateTime
| Overloaded Variants | 
| Function AdjustDateYear(const D: TDateTime; const Year: Word): TDateTime; | 
| Function AdjustDateYear(const D: TDateTime; const Year: Integer): TDateTime; | 
Declaration
Function AdjustDateYear(const D: TDateTime; const Year: Word): TDateTime;
Description
Makes 29 Feb of any year that is not a Leap year 1 Mar.
| Parameters | 
| D | Date/Time to process. | 
| Year | Year to make the date in, eg 1999. | 
Category
Date/Time Arithmetic Routines
Year Based Arithmetic RoutinesImplementation
 
| function AdjustDateYear (const D: TDateTime; const Year: Word): TDateTime;
var
     Day, Month, OldYear: Word;
begin
     OptDecodeDateW (D, OldYear, Month, Day);
     if Year = OldYear then
     begin
          Result := Int (D);
          Exit;
     end;
     if not IsLeapYear (Year) and (Month = 2) and (Day = 29) then
     begin
          Month := 3;
          Day := 1;
     end;
     Result := OptEncodeDateW (Year, Month, Day);
End; | 
Declaration
Function AdjustDateYear(const D: TDateTime; const Year: Integer): TDateTime;Implementation
 
| function AdjustDateYear (const D: TDateTime; const Year: Integer): TDateTime;
var
     Day, Month, OldYear: Integer;
begin
     OptDecodeDateI (D, OldYear, Month, Day);
     if Year = OldYear then
     begin
          Result := Int (D);
          Exit;
     end;
     if not IsLeapYear (Year) and (Month = 2) and (Day = 29) then
     begin
          Month := 3;
          Day := 1;
     end;
     Result := OptEncodeDateI (Year, Month, Day);
End; | 
|  |