Idade...o q está errado?

20/09/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


Rafael Santana

Respostas

20/09/2004

Paulo_amorim

Olá

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

Tente colocar a DataAtual como
IncDay(Now);


Espero que ajude
Até+


Responder Citar

20/09/2004

Aguiarle

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;


Responder Citar

20/09/2004

Aguiarle

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;


Responder Citar

20/09/2004

Paulo_amorim

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é+


Responder Citar