Calcular idade

Delphi

22/04/2006

E ai pessoal Blz!
Bom estou com uma duvida simples, coloquei um campo chamado Data de nascimento e quero fazer o calculo para eleme dar a idade quero
fazer algo do tipo - 22/04/2006 - 22/06/1982 = 23 anos, apenas colocar a data de nascimento e a dai ele calcula pelo dia atual e me da a idade em numeros inteiros. Acho que isto é possivel só não sei como :?:

Valeu pela ajuda !!!!!!!


Alecsandro Moura

Alecsandro Moura

Curtidas 0

Respostas

Edilcimar

Edilcimar

22/04/2006

Idade := Date() - Diadonascimento vai te dar algo tipo 23,4563
Idade := RoundTo((Date() - Diadonascimento), -2) vai ter 23,45
Idade := Round(Date() - Diadonascimento) vai ter 23
Se quiser mudar a fração para meses, tem que fazer um processo de divisao por 12 e se quiser dias pega esta última fração e transforma em dias


GOSTEI 0
Dbergkamps10

Dbergkamps10

22/04/2006

esta procedure me retorna a idade em inteiros:
var
idade : integer;
DataNasc,DataAtual : TDate ;
begin
DataNasc:=DataMod.ZTPacientepac_data_nasc.Value;
DataAtual:=Now;
Idade:=(trunc(DataAtual) - trunc(DataNasc));
IdadeCalculada:=StrtoInt(Formatfloat(´00´, Idade div 365));
end

Espero q funcione.


GOSTEI 0
Alecsandro Moura

Alecsandro Moura

22/04/2006

:? Bom eu usei este exemplo para calcular a idade só que invés de calcular a idade como ela é a idade é arredondada. Eu fiz este comando se tiver algo errado gostaria de saber qual o erro?

var
idade:real;
Dtnasc:tdate;
begin
Dtnasc:=StrToDate(Enasc.Text);
idade:=Round((date-Dtnasc)/365);
eidade.Text:=FloatToStr(idade);

end;
Como posso resolver isto?

Valeu pela ajuda!


GOSTEI 0
José Henrique

José Henrique

22/04/2006

function IdadeEmAnos(const DataNascimento : TDateTime) : integer;
var
  AnoNasc , MesNasc, DiaNasc : Word;
  Ano, Mes, Dia : Word;
  intAno : integer;
begin
   DecodeDate (DataNascimento, AnoNasc , MesNasc, DiaNasc);
   DecodeDate (Now, Ano, Mes, Dia);
   intAno := Trunc(Ano- AnoNasc);
   if (MesNasc > Mes) or (Mes = MesNasc) and (Dia < DiaNasc) then
      Dec(intAno);
   Result := intAno;
 end;
end;



GOSTEI 0
POSTAR