AddYrs Function
Adds a Floating Point amount of Years to a Given Date/Time.

Unit
QESBPCSDateTime

Declaration
Function AddYrs(const DT: TDateTime; const Yrs: Extended): TDateTime;

Description
Fractional portion of Year is assumed to be related to 365.25 day years. Time portion preserved.

If Adding Years results in landing on Feb 29 in a non-leap year, then this will be converted to Feb 28.This only applies to the integral component of the Years Added. The fractional part always is added to the resultant Date/Time.

Parameters
DT Date/Time to process.
Yrs Number of Years to Add - can be negative.

Category
Date/Time Arithmetic Routines
Year Based Arithmetic Routines

Implementation

function AddYrs (const DT: TDateTime; const Yrs: Extended): TDateTime;
var
     Day, Month, Year: Integer;
begin
     OptDecodeDateI (DT, Year, Month, Day);
     Year := Year + Trunc (Yrs);
     if not IsLeapYear (Year) and (Month = 2) and (Day = 29) then
          Day := 28;
     Result := OptEncodeDateI (Year, Month, Day) + Frac (Yrs) * 365.25
          + Frac (DT);
End;


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