DELPHI-Man32 Postado Maio 11, 2005 Denunciar Share Postado Maio 11, 2005 alguém tem ae uma função para calcular a idade de uma pessoa, mas que funcione mesmo!!abraços e ate mais, DELPHI-Man32... Link para o comentário Compartilhar em outros sites More sharing options...
0 locorj Postado Maio 11, 2005 Denunciar Share Postado Maio 11, 2005 Da unit DateUtilsYearsBetween(DateTimePicker1.Date,DateTimePicker2.Date)Pra retorna inteiros...YearSpan(DateTimePicker1.Date,DateTimePicker2.Date)Pra retornar valores fracionarios... Link para o comentário Compartilhar em outros sites More sharing options...
0 Kikonanet Postado Maio 11, 2005 Denunciar Share Postado Maio 11, 2005 Olá,Olha esta função (Calcula a Idade Atual) function IdadeAtual(Nasc : TDate): Integer; Var AuxIdade, Meses : String; MesesFloat : Real; IdadeInc, IdadeReal : Integer; begin AuxIdade := Format('%0.2f', [(Date - Nasc) / 365.6]); Meses := FloatToStr(Frac(StrToFloat(AuxIdade))); if AuxIdade = '0' then begin Result := 0; Exit; end; if Meses[1] = '-' then begin Meses := FloatToStr(StrToFloat(Meses) * -1); end; Delete(Meses, 1, 2); if Length(Meses) = 1 then begin Meses := Meses + '0'; end; if (Meses <> '0') And (Meses <> '') then begin MesesFloat := Round(((365.6 * StrToInt(Meses)) / 100) / 30.47) end else begin MesesFloat := 0; end; if MesesFloat <> 12 then begin IdadeReal := Trunc(StrToFloat(AuxIdade)); // + MesesFloat; end else begin IdadeInc := Trunc(StrToFloat(AuxIdade)); Inc(IdadeInc); IdadeReal := IdadeInc; end; Result := IdadeReal; end; Espero que ajude.Abs.Kiko Link para o comentário Compartilhar em outros sites More sharing options...
0 Vivendo&Aprendendo Postado Maio 11, 2005 Denunciar Share Postado Maio 11, 2005 Usei essa e funciona certinho:Declare uma variavel IDADE_Atual : Integer function IdadeAtual(Nasc : TDate): Integer; Var AuxIdade, Meses : String; MesesFloat : Real; IdadeInc, IdadeReal : Integer; begin AuxIdade := Format('%0.2f', [(Date - Nasc) / 365.6]); Meses := FloatToStr(Frac(StrToFloat(AuxIdade))); if AuxIdade = '0' then begin Result := 0; Exit; end; if Meses[1] = '-' then begin Meses := FloatToStr(StrToFloat(Meses) * -1); end; Delete(Meses, 1, 2); if Length(Meses) = 1 then begin Meses := Meses + '0'; end; if (Meses <> '0') And (Meses <> '') then begin MesesFloat := Round(((365.6 * StrToInt(Meses)) / 100) / 30.47) end else begin MesesFloat := 0; end; if MesesFloat <> 12 then begin IdadeReal := Trunc(StrToFloat(AuxIdade)); // + MesesFloat; end else begin IdadeInc := Trunc(StrToFloat(AuxIdade)); Inc(IdadeInc); IdadeReal := IdadeInc; end; idade_atual := IdadeReal; end; Chamei ela desta forma: procedure TFrmMembros.EdtDataNascExit(Sender: TObject); Var Idade : String; begin Idade := (copy(EdtDataNasc.Text,1,2)+'/'+copy(EdtDataNasc.Text,3,2)+'/'+copy(EdtDataNasc.Text,5,4)); IdadeAtual(StrToDate(Idade)); EdtIdade.Text:= IntToStr(idade_atual); end; falou Link para o comentário Compartilhar em outros sites More sharing options...
0 DELPHI-Man32 Postado Maio 12, 2005 Autor Denunciar Share Postado Maio 12, 2005 valeu pessoal, no mesmo dia que postei a duvida, peguei esta função ai num site e implmentei para calcular a idade, usando uma var do tipo integer(Idade_Hoje), com a função dentro de uma dll, e deu certo!! falows!!abraços a todos!! Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
DELPHI-Man32
alguém tem ae uma função para calcular a idade de uma pessoa, mas que funcione mesmo!!
abraços e ate mais, DELPHI-Man32...
Link para o comentário
Compartilhar em outros sites
4 respostass a esta questão
Posts Recomendados