Has anyone else experienced problems with date/time calculations due to
Delphi offsetting the date by 30/12/1899
The situation is that I wish to calculate a person's current age which
appeared to be simple: subtract their date of birth from the current date
then decode into actual years.
But Delphi insists on adding this offset to the date so I end up with a
person having an age of 1901 years.
(Delphi 3)
Code below:
function CurrentAge(DOB:TDateTime):integer; //Return years only
var y,m,d:word;
CDate:TDateTime;
begin
CDate:=Date-DOB;
DecodeDate(CDate,y,m,d);
Result:=y;
end;
The date subtraction is fine and in one example produces a result of 374
days, just over 1 year, Delphi then makes this into year 1901 but by the
calculation the actual number stored in the TDateTime is 1.0 something,
which it adds 30/12/1899 to
The best I have come up with is to subtract 1900 from the year but this will
be 1 day out.
---------------------------------------------------------------------------
New Zealand Delphi Users group - Delphi List - [EMAIL PROTECTED]
Website: http://www.delphi.org.nz