É muito comum termos que calcular a idade de uma pessoa, para isso um método utilitário sempre ajuda. O método abaixo calcula a idade de uma pessoa em anos de forma precisa, levando em conta o mês atual e de aniversário e o dia atual e de aniversário.

/**
 * Calcula a idade de uma pessoa considerando os meses e dias.
 * @param nascimento Data de nascimento
 * @return <code>int</code> Idade
 */
public int getIdade(Date nascimento) {
	Calendar cn = Calendar.getInstance();
	cn.setTime(nascimento);

	Date dataAtual = new Date(System.currentTimeMillis());
	Calendar ca = Calendar.getInstance();
	ca.setTime(dataAtual);

	int idade = ca.get(Calendar.YEAR) - cn.get(Calendar.YEAR);
	if (ca.get(Calendar.MONTH) < cn.get(Calendar.MONTH)) {
		idade--;
	} else if (ca.get(Calendar.MONTH) == cn.get(Calendar.MONTH)) {
		if (ca.get(Calendar.DAY_OF_MONTH) < cn.get(Calendar.DAY_OF_MONTH))
			idade--;
	}
	return idade;
}
  • Na linha 14 a idade é calculada e atribuida para a variável “idade”.
  • Linha 15, verifico se o mês atual é menor que o mês de nascimento, caso seja, significa que a pessoa ainda vai fazer aniversário, então “idade” é diminuida em 1. (Se esta condição não for verdadeira, a variável idade mantem o valor que lhe foi atribuído na linha 14).
  • A verificação da linha 15 não é verdadeira, então na linha 17 é verificado se o mês atual e o mês de nascimento são iguais, se sim, a verificação do dia de aniversário é feita na linha 18.
  • Linha 19, se o dia atual for menor que o dia de aniversário, linha 18, significa que a pessoa ainda vai fazer aniversário, portanto a idade é diminuida em 1.

Por enquanto é isso, até o próximo post.

6 comentários para “Calcular idade em anos

  1. Thank you a bunch for sharing this with all people you really recognize what you are speaking approximately! Bookmarked. Please also talk over with my web site =). We could have a hyperlink change arrangement between us!

  2. I value the article.Really looking forward to read more.

  3. I just want to tell you that I am just very new to blogs and truly loved this website. Probably I’m likely to bookmark your blog post . You really come with awesome articles. Thanks a bunch for revealing your blog.

  4. Wow, fantastic blog. And may your Christmas be also as special and unique as you are!

Deixe um comentário

Campos obrigatórios são marcados *

Post Navigation