Get age from date of birth
You can solve this problem by comparing number of month with number of current month and comparing number of day with number of current day, if on the first step was equal.
procedure TForm1.Button1Click(Sender: TObject); var NowYear, NowMonth, NowDay: Word; Year, Month, Day: Word; YearsOld: Word; begin if Edit1.Text<>'' then begin DecodeDate(Now, NowYear, NowMonth, NowDay); DecodeDate(StrToDateTime(Edit1.Text), Year, Month, Day); if NowMonth>Month then YearsOld:=NowYear-Year; if NowMonth=Day then YearsOld:=NowYear-Year; if NowDay<=Day then YearsOld:=NowYear-Year-1; end; Label2.Caption:=IntToStr(YearsOld)+' years old'; end; end;