Created
March 2, 2012 03:57
-
-
Save carlossaraiva/1955495 to your computer and use it in GitHub Desktop.
[POO] Aula 02 - Exercício 03 (método calcula Idade)
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/** | |
* 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; | |
} | |
} |
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 commented on 18 Feb 2019
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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?