Array
(
)

Idade...o q está errado?

Rafael Santana
   - 20 set 2004

bom dia pessoal eu tô usando o seguinte comando num FORM de CADASTRO DE CLIENTES

procedure TfrmClientes.DBEdit3Exit(Sender: TObject);
var
sDataNasc : String;
DataNasc,DataAtual,Idade : TDate ;
begin
sDataNasc:=DateToStr(DM.TBCLIENTESCLIDATANASC.Value);
DataNasc:=StrToDate(sDataNasc);
DataAtual:=Now;
Idade:=(DataAtual - DataNasc);
Label9.Caption:=FormatDateTime(´YY´, Idade);
end;

MAS SE A PESSOA NASCEU EM 20/09/2000 E HOJE, É 20/09/2004 ELA TERIA 04 ANOS...MAS ESSE COMANDO QUE FIZ ME TRAZ 03 ANOS...ele não está calculando o dia atual...COMO RESOLVER ISSO?

OBRIGADO


Paulo_amorim
   - 20 set 2004

Olá

Talvez ele só deva contabilizar um dia ao final dele. Assim, não há de pegar mesmo...

Tente colocar a DataAtual como #Código

IncDay(Now);


Espero que ajude
Até+


Aguiarle
   - 20 set 2004

procedure TfrmClientes.DBEdit3Exit(Sender: TObject);
var
idade : integer;
DataNasc,DataAtual : TDate ;
begin
DataNasc:=DM.TBCLIENTESCLIDATANASC.Value;
DataAtual:=Now;
Idade:=(DataAtual - DataNasc);
Label9.Caption:=Formatfloat(´00´, Idade div 365);
end;


Aguiarle
   - 20 set 2004

Pequena Correcao

procedure TfrmClientes.DBEdit3Exit(Sender: TObject);
var
idade : integer;
DataNasc,DataAtual : TDate ;
begin
DataNasc:=DM.TBCLIENTESCLIDATANASC.Value;
DataAtual:=Now;
Idade:=(trunc(DataAtual) - trunc(DataNasc));
Label9.Caption:=Formatfloat(´00´, Idade div 365);
end;


Paulo_amorim
   - 20 set 2004


Citação:
Pequena Correcao

procedure TfrmClientes.DBEdit3Exit(Sender: TObject);
var
idade : integer;
DataNasc,DataAtual : TDate ;
begin
DataNasc:=DM.TBCLIENTESCLIDATANASC.Value;
DataAtual:=Now;
Idade:=(trunc(DataAtual) - trunc(DataNasc));
Label9.Caption:=Formatfloat(´00´, Idade div 365);
end;


Olá

Boa ideia...!!!

Mas trunc em data não eh necessário soh no BD, já que no Delphi TDate TDateTime? :wink:

Até+