Problema com datas no java
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.
E como eu converto Date para int?
obrigado.
Celiol.
Curtidas 0
Respostas
Eduardo Pessoa
02/10/2013
é mais isso que procura?
[url]http://stackoverflow.com/questions/12067697/convert-current-date-as-integer[/url]
[url]http://stackoverflow.com/questions/12067697/convert-current-date-as-integer[/url]
GOSTEI 0
Eduardo Pessoa
02/10/2013
Woody, era isso?
GOSTEI 0
Eduardo Pessoa
02/10/2013
alguma novidade?
GOSTEI 0
Celiol.
02/10/2013
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.
GOSTEI 0
Eduardo Pessoa
02/10/2013
pesquisei bastante sobre o assunto, mas não achei nada, como seria esse "pegar do calendario"?
GOSTEI 0
Henrique Santos
02/10/2013
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.
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.
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
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
Com isso, você deve setar as constantes do objeto dataNascimento referentes aos dias, meses e anos.
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.
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:
Só falta dar á saída.
Espero ter ajudado.
Abraço
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
GOSTEI 0
Celiol.
02/10/2013
valeu galera ja resolvi.
GOSTEI 0
Eduardo Pessoa
02/10/2013
vlw Woody.
GOSTEI 0
Celiol.
02/10/2013
post resolvido galera pode cancelar.
GOSTEI 0