Fórum Problema com datas no java #457321

02/10/2013

0

Ola galera como faço para pegar uma data de entrada do usuário e e subtraio para saber a idade dele?

E como eu converto Date para int?

obrigado.
Celiol.

Celiol.

Responder

Posts

04/10/2013

Eduardo Pessoa

é mais isso que procura?

[url]http://stackoverflow.com/questions/12067697/convert-current-date-as-integer[/url]
Responder

Gostei + 0

05/10/2013

Eduardo Pessoa

Woody, era isso?
Responder

Gostei + 0

07/10/2013

Eduardo Pessoa

alguma novidade?
Responder

Gostei + 0

08/10/2013

Celiol.

nao, na verdade eu não sei como pegar a data informada em calendário e fazer o calculo para saber a data de nascimento.
Responder

Gostei + 0

08/10/2013

Eduardo Pessoa

pesquisei bastante sobre o assunto, mas não achei nada, como seria esse "pegar do calendario"?
Responder

Gostei + 0

13/10/2013

Henrique Santos

Boa noite Galera!

Woody, primeiramente não utilize a classe Date para fazer esse tipo de operação, seus métodos get / set são obsoletos. Utilize a classe Calendar.

A lógica é a seguinte: você deve criar duas instancias da classe Calendar, uma para armazenar a data atual e outra para pegar a data passada pelo usuário.

Calendar dataNascimento = Calendar.getInstance();

Calendar dataAtual = Calendar.getInstance();


Em seguida, você deve criar um objeto String para receber os dados passados pelo usuário. Usei o JOptionPane para criar um GUI básico.

String entraData = JOptionPane.showInputDialog(null,"Digite sua data de nascimento(dd/mm/aaaa)","Data",JOptionPane.INFORMATION_MESSAGE);


Agora você deve "quebrar" essa String para que consiga acessar, de forma separada, as informações de "dia/mes/ano". Para isso utilize o método split() da classe String passando como parâmetro a "/".

Essa String "quebrada" deve ser armazenada em um array de Strings

String [] partesData = entraData.split("/");


Tendo esses dados de forma separada (dia, mês e ano) e estando armazenado no array , crie 3 variáveis do tipo primitivo int para armazená-los. Utilize o método parseint() da classe wrapper Integer para convertes as Strings para ints

int diaNascimento = Integer.parseInt(partesData[0]);

int mesNascimento = Integer.parseInt(partesData[1]);

int anoNascimento = Integer.parseInt(partesData[2]);


Com isso, você deve setar as constantes do objeto dataNascimento referentes aos dias, meses e anos.

dataNascimento.set(Calendar.DAY_OF_MONTH, diaNascimento);

dataNascimento.set(Calendar.MONTH, mesNascimento);

dataNascimento.set(Calendar.YEAR, anoNascimento);


Pronto, já temos os dados de entrada tratados. Agora você deve usar o objeto dataAtual para pegar a data atual, utilizando os métodos gets.

int diaAtual = dataAtual.get(Calendar.DAY_OF_MONTH);

int mesAtual = dataAtual.get(Calendar.MONTH);

int anoAtual = dataAtual.get(Calendar.YEAR);


Já temos aqui todas as informações necessárias para conseguir calcular a idade do usuário.

Por exemplo, se quisermos saber a idade apenas subtraindo o ano atual do ano do nascimento:

int idadeAnos = anoAtual - anoNascimento;


Só falta dar á saída.

JOptionPane.showMessageDialog(null, "Sua idade é: "+idadeAnos+" anos.");



Espero ter ajudado.

Abraço
Responder

Gostei + 0

27/11/2013

Celiol.

valeu galera ja resolvi.
Responder

Gostei + 0

27/11/2013

Eduardo Pessoa

vlw Woody.
Responder

Gostei + 0

06/02/2014

Celiol.

post resolvido galera pode cancelar.
Responder

Gostei + 0

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

Aceitar