...calculate the age of a person?

Author: Simon Grossenbacher
Homepage: http://www.swissdelphicenter.ch

Category: Math

function CalculateAge(Birthday, CurrentDate: TDate): Integer;
var
  
Month, Day, Year, CurrentYear, CurrentMonth, CurrentDay: Word;
begin
  
DecodeDate(Birthday, Year, Month, Day);
  DecodeDate(CurrentDate, CurrentYear, CurrentMonth, CurrentDay);

  if (Year = CurrentYear) and (Month = CurrentMonth) and (Day = CurrentDay) then
  begin
    
Result := 0;
  end
  else
  begin
    
Result := CurrentYear - Year;
    if (Month > CurrentMonth) then
      
Dec(Result)
    else
    begin
      if 
Month = CurrentMonth then
        if 
(Day > CurrentDay) then
          
Dec(Result);
    end;
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  
Label1.Caption := Format('Your age is %d', [CalculateAge(StrToDate('01.01.1903'), Date)]);
end;

 

printed from
www.swissdelphicenter.ch
developers knowledge base