Verificar se pessoa é maior que 16 anos

Boa noite estou tentando verificar se uma pessoa tem idade maior que 16 anos verificando a data atual e a data digitada pelo usuário em JSF alguém poderia me ajudar?
Se alguém tiver algum exemplo para que eu consiga entender melhor…

Posta o que você já fez…

Não estou sabendo diminuir uma data de outra…

public void validateBeginDate(FacesContext context, UIComponent component,
			Object value) {
		
		data_nasc = (Date) value;
		data_hoje = new Date();
		Calendar calendar = Calendar.getInstance();
		calendar.add(Calendar.YEAR, -18);
		System.out.println("Data Hoje: "+ data_hoje);
		System.out.println("Data Nasc: "+ data_nasc);
		
		Integer result = data_hoje.getDate() - data_nasc.getDate();
		System.out.println("Resultado: "+result);
		if (result >= 16) {
			throw new ValidatorException(new FacesMessage(
					"Data de Nasciemto Invalida!!!"));
		}
	}

alguem???

dica, pra saber se uma data de nascimento for maior q 18 anos, voce adiciona 18 anos nessa data e ve se ela vem antes ou depois da data atual.

Um exemplo usando a classe calendar pra saber isso que voce quer(se quiser da pra usar tambem a classe date, ela tambem tem o método before mas a Calendar é melhor pra mecher com datas):

Calendar dataNasc=Calendar.getInstance(); dataNasc.setTime(new SimpleDateFormat("dd/MM/yyyy").parse("12/12/1991")); dataNasc.add(Calendar.YEAR, 18); Calendar dataAtual=Calendar.getInstance(); if(dataNasc.before(dataAtual)){ System.out.println("Eh maior q 18"); }else{ System.out.println("Precisa de acompanhante"); }

Resolvido…

Segue como ficou o código, talvez não é a melhor solução mas devido a urgência funciona…

@FacesValidator("DataNacValidator")
public class DataNacValidator implements Validator {

	private Date data_hoje;
	private Date data_nasc;

	public void validate(FacesContext ctx, UIComponent cmpt, Object valor)
			throws ValidatorException {
		validateBeginDate(ctx, cmpt, valor);
	}

	public void validateBeginDate(FacesContext context, UIComponent component,
			Object value) {

		data_nasc = (Date) value;
		data_hoje = new Date();

		@SuppressWarnings("deprecation")
		int idade = data_hoje.getYear() - data_nasc.getYear();

		System.out.println("Anos: " + idade);

		if (idade < 16) {
			throw new ValidatorException(new FacesMessage(
					"Data de Nasciemto Invalida!!!"));
		}
	}
}

É… Funciona mas quando tiver um tempo livre troca esse método pelo da classe calendar, o motivo voce ja deve saber porque né rsrsr

1 curtida