Como faço para saber a idade da pessoa pela data de nascimento?
Sim é simples, se as variáveis fossem inteiras. Mas as minha estão em String,
por exemplo: “21/08/1992” o certo é retornar idade = “21”;
Mas como é em string não faço ideia de como realizar este cálculo, o que eu poderia fazer?
Procure pelos métodos split ou substring que achará a solução
jkrfabio
wellington.nogueira:
Não use split + substring, use o DateFormat.
Além do método format que serve para transformar um Date numa String, existe o método parse que faz o caminho inverso.
DateFormat format = new SimpleDateFormat("dd/MM/yyyy");
try {
Date parsedDate = format.parse(suaString);
} catch (ParseException e1) {
e1.printStackTrace();
}aí, só fazer o cálculo usando a classe Date.
Faço o cálculo dentro do try certo?
lele_vader
Você pode criar um date a partir da string com o simple date format e depois um date com a data de hoje.
Daí você precisaria retirar os milissegundos e fazer as contas, as quais eu não sei.
Recomendo se puder usar a api joda time, que eu acho que tem métodos para você que faz isso.
WellingtonRamos
Não use split + substring, use o DateFormat.
Além do método format que serve para transformar um Date numa String, existe o método parse que faz o caminho inverso.
DateFormat format = new SimpleDateFormat("dd/MM/yyyy");
try {
Date parsedDate = format.parse(suaString);
} catch (ParseException e1) {
e1.printStackTrace();
}aí, só fazer o cálculo usando a classe Date.
WellingtonRamos
Pode ser mas não necessariamente. Pois o try-catch está tratando unicamente o parse e torna-se desnecessário mais códigos dentro dele.
Se quiser, declare a variável acima do try (atribuindo null) e use-a depois.