Skip to content

Instantly share code, notes, and snippets.

@carlossaraiva
Created March 2, 2012 03:57
Show Gist options
  • Save carlossaraiva/1955495 to your computer and use it in GitHub Desktop.
Save carlossaraiva/1955495 to your computer and use it in GitHub Desktop.
[POO] Aula 02 - Exercício 03 (método calcula Idade)
/**
* Esse método serve para calcular a idade, de maneira um tanto 'desastrada' mas que funcionou nos testes.
* É bem possível que ha maneira de lidar direto com datas no java, mas a graça é
* poder subtratir as strings. O método para tal é o 'substring',
* com os parametros no formato (x,y), x aonde vc quer comece a procura na sua string e y o ponto de chegada.
* Usei o parseInt, para de uma vez só já converter para um integer, ou inteiro.
* A lógica para determinar a idade não somente pelo ano, mas considerando data e mês,
* é pensar que se a data atual for menor que a data de nascimento ou o mês de nascimento
* for menor que o mês atual, descresce -1 da variável idade. No exercício diz que o método
* NÂO tem valor de entrada, talvez //porque exija que se recupere a data do sistema...
* Mas até aqui é mais da metade do caminho andado.
*/
/**
* @author Carlos
*/
public int calculaIdade(String dataAtual)
{
int diaNasc = Integer.parseInt(this.dtNasc.substring(0,2));
int mesNasc = Integer.parseInt(this.dtNasc.substring(3,5));
int anoNasc = Integer.parseInt(this.dtNasc.substring(6,10));
int idade = Integer.parseInt(dataAtual.substring(6,10)) - anoNasc ;
if(Integer.parseInt(dataAtual.substring(3,5)) < mesNasc || Integer.parseInt(dataAtual.substring(0,2)) < diaNasc)
{
idade--;
return idade;
}
else
{
return idade;
}
}
@tlima1011
Copy link

Você teria quando recebe um parâmetro do tipo Date como data de nascimento e faz o cálculo de idade e a data atual?

@MariaAndreaDasilva
Copy link

public int calculaIdade(String dataAtual){ int diaNasc = Integer.parseInt(this.dtNasc.substring(0,2)); int mesNasc = Integer.parseInt(this.dtNasc.substring(3,5)); int anoNasc = Integer.parseInt(this.dtNasc.substring(6,10)); int idade = Integer.parseInt(dataAtual.substring(6,10)) - anoNasc ;
if(Integer.parseInt(dataAtual.substring(3,5)) &lt; mesNasc || Integer.parseInt(dataAtual.substring(0,2)) &lt; diaNasc)    {        idade--;        return idade;    }    else    {        return idade;    }

}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment