Fórum Data de aniversário #315983
14/03/2006
0
Gostaria de saber qual é o problema com este código para calcular a idade da pessoa a partir da data de nascimento.
[code:1:1b6d42c348][/code:1:1b6d42c348]
var
nascimento : TDate;
nascimento := DBDateEdit9.Date;
DBEdit03.Text := formatfloat(´#,0´, ( (date - nascimento) / 365));[/code]
Alguém teria um código mais eficaz.
Alguém poderia me ajudar,
Vlw,
Rodrigo.
Rodrigorpb
Curtir tópico
+ 0Posts
14/03/2006
Motta
http://forum.devmedia.com.br/viewtopic.php?t=28229&highlight=function+idade&sid=f7c394753ddc77e38024275e10a642ce
Existem anos bissestos e meses com <> nº de dias, por isto / 365 fica dá errado ´as vezes , talvez / 365,25 fique melhor, mas o melhor é uma function.
Gostei + 0
14/03/2006
Rodrigorpb
Vou dar uma olhada,
Mas estava vendo o exemplo de baixo e me parece que ele também caulcula certo.
campocalculavel.ascurrency:=StrtoFloat(FormatDateTime(´yyyy´,Date)- StrtoFloat(FormatDateTime(´yyyy´,DtaNasciment);
Rodrigo.
Gostei + 0
14/03/2006
Rodrigorpb
function IdadeEmAnos(PNasc, PDate:TDateTime): integer;
var
dNasc, dDate: TDecodedDate;
Idade: integer;
begin
{Inicializa com Idade Impossível ...}
Idade := -1;
if PNasc > PDate then
begin
result := 0;
Exit;
end;
DecodeDate(PNasc, dNasc.ano, dNasc.mes, dNasc.dia);
DecodeDate(PDate, dDate.ano, dDate.mes, dDate.dia);
Idade := dDate.ano - dNasc.ano;
if ((dNasc.mes * 100) + dNasc.dia) > ((dDate.mes * 100) + dDate.dia) then
inc(Idade, -1);
result := Idade;
end;Rodrigo.
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)