Data de aniversário
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
Posts
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.
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.
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.
Clique aqui para fazer login e interagir na Comunidade :)