Fórum Cálculo de idade. #177893
27/08/2003
0
Tenho um sistema onde possuo um cadastro de clientes. Nesse cadastro exite dois campos TDateTime. Um deles eh a data do cadastro, o outro é a data de nascimento.
Quando é concluído o cadastro, dependendo da idade, esse cliente é aceito ou não. Então preciso fazer a verificaçãó da idade do cliente.
Por exemplo:
begin
if idade<65 then
//cadastro aceito
else
//cadastro não aceito
end
Certo, agora como faço para descobrir a idade do cliente?
Já tentei várias formas mas não funcionou.
Quando é concluído o cadastro, dependendo da idade, esse cliente é aceito ou não. Então preciso fazer a verificaçãó da idade do cliente.
Por exemplo:
begin
if idade<65 then
//cadastro aceito
else
//cadastro não aceito
end
Certo, agora como faço para descobrir a idade do cliente?
Já tentei várias formas mas não funcionou.
Gdonati
Curtir tópico
+ 0
Responder
Posts
27/08/2003
Dgpires
Para o formato de data dd/mm/yyyy
Você tem que verificar o dia e o mês também para saber se a pessoa já fez aniversário no ano atual.
var dia_atual, dia_nasc, mes_atual, mes_nasc, ano_atual, ano_nasc : String
idade : Integer
begin
dia_atual := copy(datetostr(now,1,2));
dia_nasc := copy(datetostr(table1.fieldbyname(´data_nasc´).asstring,1,2);
mes_atual := copy(datetostr(now,4,2));
mes_nasc := copy(datetostr(table1.fieldbyname(´data_nasc´).asstring,4,2);
ano_atual := copy(datetostr(now,7,4));
ano_nasc := copy(datetostr(table1.fieldbyname(´data_nasc´).asstring,7,4);
if mes_atual > mes_nasc then
idade := strtoint(ano_atual) - strtoint(ano_nasc)
else if mes_atual = mes_nasc then
begin
if dia_atual > dia_nasc then
idade := strtoint(ano_atual) - strtoint(ano_nasc)
else
idade := strtoint(ano_atual) - strtoint(ano_nasc) - 1; //ainda não fez aniversário
end
else
idade := strtoint(ano_atual) - strtoint(ano_nasc) - 1;
end;
-------------------------
Espero ter ajudado,
Douglas
Você tem que verificar o dia e o mês também para saber se a pessoa já fez aniversário no ano atual.
var dia_atual, dia_nasc, mes_atual, mes_nasc, ano_atual, ano_nasc : String
idade : Integer
begin
dia_atual := copy(datetostr(now,1,2));
dia_nasc := copy(datetostr(table1.fieldbyname(´data_nasc´).asstring,1,2);
mes_atual := copy(datetostr(now,4,2));
mes_nasc := copy(datetostr(table1.fieldbyname(´data_nasc´).asstring,4,2);
ano_atual := copy(datetostr(now,7,4));
ano_nasc := copy(datetostr(table1.fieldbyname(´data_nasc´).asstring,7,4);
if mes_atual > mes_nasc then
idade := strtoint(ano_atual) - strtoint(ano_nasc)
else if mes_atual = mes_nasc then
begin
if dia_atual > dia_nasc then
idade := strtoint(ano_atual) - strtoint(ano_nasc)
else
idade := strtoint(ano_atual) - strtoint(ano_nasc) - 1; //ainda não fez aniversário
end
else
idade := strtoint(ano_atual) - strtoint(ano_nasc) - 1;
end;
-------------------------
Espero ter ajudado,
Douglas
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)