Fórum Como calcular idade? #300642
25/10/2005
0
Agradeço a atençao de todos
ADRIANO
Adriano_servitec
Curtir tópico
+ 0Posts
25/10/2005
Firekiller
var
MesN, AnoN, MesA, idadeAnos, idadeMeses:integer;
mesN := MonthOf( CampoDataNascimento );
anoN := YearOf( CampoDataNascimento );
mesA := MonthOf( date );
idadeanos:= anoN - YearOf( Date );
idadeMeses := 0;
if mesN > mesA then begin
idadeAnos := idadeAnos - 1;
idadeMeses := 12 + mesA - mesN;
end
else if mesN > mesA then begin
idadeMeses := mesA - mesN;
end;
Label.Caption := Format(´A idade é ¬d anos e ¬d meses´,[idadeAnos,idadeMeses]);
Nesse caso, levo em consideração apenas os meses, porém não os dias. A idade é exibida em um label. Verifique o trecho usado para tratamento do mes e implemente o restante para tratamento dos dias.
Gostei + 0
25/10/2005
Adriano_servitec
Agradeço pela ajuda
Gostei + 0
25/10/2005
Adriano_servitec
Eh muito importante
Agradeço a ajuda de todos
Obrigado
Gostei + 0
25/10/2005
Renatacoimbra
Mais vc pode usar essa função, uso ela e funciona certinho.
function TForm1.IdadeExtenso(DataNasc: TDateTime): String; Var CalcIdade : Double; Ano, sA, sM, sD : String; A, M, D : Word; begin CalcIdade := ( Date - DataNasc); DecodeDate(CalcIdade,A,M,D); Dec(M); Ano := IntToStr(A); Delete(Ano,1,2); if A > 1 then sA := ´Anos´ else sA := ´Ano´; if M > 1 then sM := ´Meses´ else sM := ´Mes´; if D > 1 then sD := ´Dias´ else sD := ´Dia´; if Ano <> ´00´ then Result := Ano+´ ´+sA; if M > 0 then Result := Result + ´ ´+IntToStr(M)+´ ´+sM; if D > 0 then Result := Result + ´ ´+IntToStr(D)+´ ´+sD; end;
[]´s
Gostei + 0
25/10/2005
Adriano_servitec
Gostei + 0
25/10/2005
Firekiller
label.Caption := IdadeExtenso(StrToDate(edit1.text) );
e então seria mostrado no label o que você quer.
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)