Fórum Ver idade #173986

08/08/2003

0

como posso fazer pra apartir de uma data digitada no edit, e ao click ´OK´ dar um showmessege com a idade da pessoa, ? na verdade eu queria o tempo de vida, integral, tem X anos, e y meses, a data referida era tal dia da semana, mas achei q era pedir demais... como veem sou muiito leigo no assunto, mas quero aprender... se resolver só a idade ja to louco de contente.

obrigadao

há quero agradecer as respostas das outras questoes. obrigado...
bah vcs sao rapidos né...


Sidnei

Sidnei

Responder

Posts

08/08/2003

4_olho

Se você souber resolver isto com lápis e papel, fica fácil colocar em código.

Para calcular tempo de vida, reduza a data de nascimento da data de hoje, o que lhe retorna um número inteiro (portanto em dias).

Divida este número por 365,25 (o 0,25 acerta os anos bissextos) então uma coisa já tem, a quantidade de anos (a parte inteira).

Pegue a parte fracionária e multiplique por 365 e terá de novo um númeor de dias. Pegue este númeor e divida por 30 - a parte inteira é o númeor de meses e a parte fracionária x 30 o númeor de dias.

Existe uma função que te dá o dia da semana de qualquer data.

Esta e as outras funções você encontra no Help online do Delphi.


Responder

Gostei + 0

09/08/2003

Sidnei

bom pelo q entendi fiz como abaixo...
é normal a data ser mes/dia/ano
a dat de meu PC tá assim no norton por ex: 11/08/aaa
e no delphi qdo qdo uso:

Label1.Caption:=DateTimeToStr(Now)

a data no label fica assim
8/9/sábado 15:41:38
é normal ?

e aqui abaixo é a questao de minha outra dúvida..

procedure TForm1.Button1Click(Sender: TObject);
begin
//diminuir data-1 de data-2, exibindo numero de dias entre as duas
Edit3.Text := IntToStr(Trunc(StrToDate(Edit1.Text))-Trunc(StrToDate(Edit2.Text)));

//numero de anos
Edit4.Text:=FloatToStr(StrToFloat (Edit3.Text)/365.25);

//navamente numero de dias
// -> QUESTAO -> eu nao posso usar o resultado do Edit3 ?
//-> QUESTAO -> pq antes eu dividi por 365.25 e agora multiplico por 365 ?
Edit5.Text:=FloatToStr(StrToFloat(Edit4.Text)*365);

//numero de meses
//->QUESTAO e os meses com 31 dias ?
Edit6.Text:=FloatToStr(StrToFloat(Edit5.Text)/30);

há e os tais numeros fracionários como vou multiplica oq esta depois da virguta ?
assim: ser quero 0,5 do resultado anterior... entaum farei a mesma conta + a x q quero ex: 1/2*30, é isso mesmo ?


Responder

Gostei + 0

09/08/2003

4_olho

Sidnei

Dê uma espiada na aplicação que criei. Acho que fica mais fácil. Usei Delphi 6. Se precisar, envio o executável.

[url]www.frank.com.br/info/down/idade.zip[/url]


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar