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