Fórum Calcular Idade #185330
30/09/2003
0
Gostaria de uma função simples para calcular apenas a [b:f5364d8ca2]Idade[/b:f5364d8ca2] que a pessoa têm, baseando-se em um valor digitado no seguinte formato: dd/mm/yy
OBS: Fiz uma busca pelo fórum e todas as funções são muito detalhadas, informando Anos, meses e dias.
OBS: Fiz uma busca pelo fórum e todas as funções são muito detalhadas, informando Anos, meses e dias.
Fmd
Curtir tópico
+ 0
Responder
Posts
30/09/2003
M@rcelo
Amigo, tenho essa funcao mas ainda nao testei.
se nao ser me fale ok
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;
se nao ser me fale ok
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;
Responder
Gostei + 0
30/09/2003
Fhpita
Use a função ´yearsbetween´ do delphi da uses ´DateUtils´
Exemplo:
idade := yearsbetween([data de nascimento],[data de hoje]);
Exemplo:
idade := yearsbetween([data de nascimento],[data de hoje]);
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)