Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Didi's Dog ®

[Resolvido] Calcular idade a partir da data de nascimento.

Recommended Posts

Bom dia, boa tarde, boa noite... (a todos)

 

 

Preciso exibir a idade dos integrantes de um grupo dinamicamente a partir da data de nascimento dos mesmos.

usando somente o ano, eu consegui de uma maneira bem simples:

 

var hoje:Date=new Date();
nascimento=1973;
idade = hoje.getFullYear()-nascimento;
trace(idade);

procurando por aí encontrei a solução em AS3 (que não entendi):

 

var hoje:Date = new Date();
var nasc:Date = new Date(1973, 12, 16);
var idade:Date = new Date(hoje.time - nasc.time);
idade.fullYear -= 1970;
trace(idade.fullYear);

tem como "adaptar" esto código para AS2?

 

 

Abraço!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Corrigido

var hoje:Date = new Date();
var nasc:Date = new Date(1975, 8, 9);
var idade:Date = new Date(hoje.getTime() - nasc.getTime());
var resultado:Number=idade.getFullYear()-1970;
trace(resultado);

Compartilhar este post


Link para o post
Compartilhar em outros sites

Valeu DesenvolvedorRoger!

 

Ok ok, funciona em AS2 e eu agradeço a sua "correção"...

 

porém, como estou aqui pra aprender e não só copiar os códigos prontos, se puder,

por favor me explica o porque daquele -1970? se a data de nascimento será variável?

 

 

Abraço!

 

http://forum.imasters.com.br/public/style_emoticons/default/ermm.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu escrevi "Corrigido" porque eu tinha colocado o código errado e em seguida editei o post.

 

Quanto ao 1970, vamos lá:

 

//Aqui criamos(instância) o objeto Date que servirá como referência para a data de hoje(data atual).
var hoje:Date = new Date();

//Aqui instanciamos o objeto Date que será a nossa referênica para o cálculo da idade
var nasc:Date = new Date(1975, 8, 9);

//Date.getTime() -> Retornará o número de milissegundos desde a meia noite de 01 de janeiro de 1970(Mas observe que a base nesse caso é 9 de setembro de 1975)
nasc.getTime();// Aqui um Date.getFullyear() iria retornar 1975!

//Date.getTime() -> Retornará o número de milissegundos desde a meia noite de 01 de janeiro de 1970(Aqui a base será 01 de janeiro de 1970)
hoje.getTime();// Aqui um Date.getFullyear() iria retornar 2010!

//Logo temos 
hoje.getTime()-...1975= xxxx;

//Aqui criamos um novo objeto Date baseado no nosso cálculo acima
var idade:Date = new Date(hoje.getTime() - nasc.getTime());// Aqui um Date.getFullyear() iria retornar 2005!

//Date.getFullYear() -> retorna o ano completo(um número de quatro dígitos) do objeto Date especificado, de acordo com a hora local.


//Já aqui você tem o resultado baseado no cálculo da idade(veja mais acima como é feito o cálculo)
var resultado:Number=idade.getFullYear()-1970;// Aqui o Date.getFullyear() irá retornar 35!(2005-1970 = 35;)

 

Dêu para entender ?

 

B)

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.