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;