Idade...o q está errado?
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
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
Curtidas 0
Respostas
Paulo_amorim
20/09/2004
Olá
Talvez ele só deva contabilizar um dia ao final dele. Assim, não há de pegar mesmo...
Tente colocar a DataAtual como
Espero que ajude
Até+
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é+
GOSTEI 0
Aguiarle
20/09/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;
var
idade : integer;
DataNasc,DataAtual : TDate ;
begin
DataNasc:=DM.TBCLIENTESCLIDATANASC.Value;
DataAtual:=Now;
Idade:=(DataAtual - DataNasc);
Label9.Caption:=Formatfloat(´00´, Idade div 365);
end;
GOSTEI 0
Aguiarle
20/09/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;
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;
GOSTEI 0
Paulo_amorim
20/09/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;
Olá
Boa ideia...!!!
Mas trunc em data não eh necessário soh no BD, já que no Delphi TDate TDateTime? :wink:
Até+
GOSTEI 0