Calcular idade (em anos completos) no Delphi
A função abaixo calcula o número de anos completos entre duas datas. É ideal para calcular idades de pessoas, por exemplo.
function CalcAnos(const Data1, Data2: TDateTime): integer; var D1, M1, A1, D2, M2, A2: Word; begin DecodeDate(Data1, A1, M1, D1); DecodeDate(Data2, A2, M2, D2); Result := A2 - A1; if (M1 > M2) or ((M1 = M2) and (D1 > D2)) then Dec(Result); end;
Exemplo de uso:
- Coloque um Edit (TEdit) para digitar a data de nascimento.
- Coloque um botão (TButton).
- Coloque o código a seguir no evento OnClick do botão:
var DataNasc: TDateTime; begin DataNasc := StrToDate(Edit1.Text); ShowMessage(IntToStr(CalcAnos(DataNasc, Date)) + ' anos'); end;