#Calendar#

7 respostas
Jsquare

Como devo fazer para saber se o indivíduo tem idade superior a 18 anos…?

Nunca usei “Calendar”… segue abaixo uma parte do código que fiz até agora foi:

Calendar dtNascimento = Calendar.getInstance();
        dtNascimento.setTime(vo.getDatanascimento());
        dtNascimento.add(Calendar.YEAR, 18);
        if (dtNascimento.getTime().compareTo(vo.getDatacadastro()) > 0) {
            list.add("O cliente tem que ter idade superior a 18 anos.");
        }

:arrow: Onde… ‘vo’ foi instanciado; nele contém dataNascimento e dataCadastro ambos do tipo Date…

7 Respostas

Anime

Oi Jsquare,

Você precisa mesmo lidar com data,não seria mais facil entrar com a idade e ver se idade >= 18.

nel

Bom dia.

//Data de entrada
Date date = new SimpleDateFormat("yyyy/MM/dd").parse("1990/10/10");
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
	
//Data Atual	
Calendar cal = Calendar.getInstance();
int year = cal.get(Calendar.YEAR);
int oldYear = calendar.get(Calendar.YEAR);
		
System.out.println("Idade: " + (year - oldYear));

Claro, não está sendo considerado dia e mês, que seria uma solução mais adequada, mas creio que isto tenha lhe dado uma luz, certo?
Abraços :slight_smile:

Jsquare

Bom dia Anime…

Sim! É necessário… tentei fazer da forma que você citou… mas ele não permite pelo fato de “getDatanascimento() e getDatacadastro” serem do tipo “Date”…

Abraço…

Jsquare

nel:
Bom dia.

//Data de entrada
Date date = new SimpleDateFormat("yyyy/MM/dd").parse("1990/10/10");
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
	
//Data Atual	
Calendar cal = Calendar.getInstance();
int year = cal.get(Calendar.YEAR);
int oldYear = calendar.get(Calendar.YEAR);
		
System.out.println("Idade: " + (year - oldYear));

Claro, não está sendo considerado dia e mês, que seria uma solução mais adequada, mas creio que isto tenha lhe dado uma luz, certo?
Abraços :)

Estou desenvolvendo um sistema onde clientes com idade inferior a 18 anos não podem ser cadastrados… no código que postei, a comparação entre as datas que eu quero fazer tem que ser entre a data do cadastro e ano que ele nasceu…

Jsquare

Anime:
Oi Jsquare,

Você precisa mesmo lidar com data,não seria mais facil entrar com a idade e ver se idade >= 18.

Bom dia Anime…

Sim! É necessário… tentei fazer da forma que você citou… mas ele não permite pelo fato de “getDatanascimento() e getDatacadastro” serem do tipo “Date”…

Abraço…

Anime

Seria mais ou menos isso:

resultado=(dataCadastro - dataNascimento)

resultado >= 18 é maior de idade

Pesquise sobre o Joda Time

http://joda-time.sourceforge.net/

nel

Jsquare:
nel:
Bom dia.

//Data de entrada
Date date = new SimpleDateFormat("yyyy/MM/dd").parse("1990/10/10");
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
	
//Data Atual	
Calendar cal = Calendar.getInstance();
int year = cal.get(Calendar.YEAR);
int oldYear = calendar.get(Calendar.YEAR);
		
System.out.println("Idade: " + (year - oldYear));

Claro, não está sendo considerado dia e mês, que seria uma solução mais adequada, mas creio que isto tenha lhe dado uma luz, certo?
Abraços :)

Estou desenvolvendo um sistema onde clientes com idade inferior a 18 anos não podem ser cadastrados… no código que postei, a comparação entre as datas que eu quero fazer tem que ser entre a data do cadastro e ano que ele nasceu…

Poh colega, vejo um pouco de preguiça ai, é tão fácil adaptar a sua necessidade o código que postei. Bom, se não queres a data atual, no segundo Calendar que foi criado seta a outra data, você terá um Calendar com a data referente ao ano de nascimento do usuário e outro calendar com a data de entrada no sistema, depois é só aplicar a lógica que demonstrei.

Abraços.

Criado 27 de agosto de 2010
Ultima resposta 27 de ago. de 2010
Respostas 7
Participantes 3