Ajuda com Strings

6 respostas
jkrfabio

Olá,

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?

6 Respostas

ivandasilva

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.

WellingtonRamos

Aliás, após ter teu Date, dê uma olhada em http://www.guj.com.br/java/9440-diferenca-entre-datas

Criado 19 de março de 2013
Ultima resposta 19 de mar. de 2013
Respostas 6
Participantes 4