Dimas,

Veja se esta função escrita em Delphi te ajuda ai.

function MostraIdade(dData : tDateTime = 0 ; dDataAtual : tDateTime = 0 
) : string ;
var
    iAnoIdade,
    iMesIdade,
    iDiaIdade,
    iAnoAtual,
    iMesAtual,
    iDiaAtual : Integer;
    iAno,
    iMes,
    iDia : Integer;
begin
    iAnoIdade := 0;
    iMesIdade := 0;
    iDiaIdade := 0;
    if dData>0 then
    begin
      If dDataAtual<1 then
         dDataAtual := now;
      iAnoAtual := StrToIntDef(FormatDateTime('yyyy',dDataAtual),0);
      iMesAtual := StrToIntDef(FormatDateTime('mm',dDataAtual),0);
      iDiaAtual := StrToIntDef(FormatDateTime('dd',dDataAtual),0);

      iAno      := StrToIntDef(FormatDateTime('yyyy',dData),0);
      iMes      := StrToIntDef(FormatDateTime('mm',dData),0);
      iDia      := StrToIntDef(FormatDateTime('dd',dData),0);

      iAnoIdade := iAnoAtual - iAno;
      If ((iMesAtual<iMes) or
           ((iMesAtual=iMes) and (iDiaAtual<iDia)) ) then
         iAnoIdade := iAnoIdade - 1;
      If (iMesAtual<iMes) then
         iMesIdade := 12-(iMes-iMesAtual)
      else if (iMesAtual>iMes) then
      begin
         iMesIdade := iMesAtual-iMes;
         If (iDiaAtual<iDia) then
            iMesIdade := iMesIdade - 1;
      end;
      If (iDiaAtual<iDia) then
         iDiaIdade := iDiaAtual
      else
         iDiaIdade := iDiaAtual - iDia;
    end;
    Result := IntToStr(iAnoIdade)+' ano(s) '+
              IntToStr(iMesIdade)+' mes(es) '+
              IntToStr(iDiaIdade)+' dia(s)';

end;


Sucesso !!


Moacir

Em 31/03/2010 09:28, Dimas escreveu:
> Oi pessoal
>
> Trabalho com FireBird 1.5 e Delphi 7.
>
> Preciso fazer um Select de uma tabela de pessoas e um dos campos de retorno
> precisa ser a idade da pessoa. (exemplo:  4 anos , 5 meses )
>
> Na minha tabela eu tenho a data de nascimento.
>
> Agradeço sugestões.
>
> Obrigado.
>
>
>
>
> ------------------------------------
>
>    

Responder a