Fórum Problema com datas no java #457321
02/10/2013
0
E como eu converto Date para int?
obrigado.
Celiol.
Curtir tópico
+ 0Posts
04/10/2013
Eduardo Pessoa
[url]http://stackoverflow.com/questions/12067697/convert-current-date-as-integer[/url]
Gostei + 0
05/10/2013
Eduardo Pessoa
Gostei + 0
07/10/2013
Eduardo Pessoa
Gostei + 0
08/10/2013
Celiol.
Gostei + 0
08/10/2013
Eduardo Pessoa
Gostei + 0
13/10/2013
Henrique Santos
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
27/11/2013
Celiol.
Gostei + 0
27/11/2013
Eduardo Pessoa
Gostei + 0
06/02/2014
Celiol.
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)