Boa noite pessoal, estou fazendo uma aplicação java e deparei com uma dificuldade em chamar o meu método de calcular idade para fazer esse calculo com base na data de nascimento e atualizar o campo da idade quando o usuário clicar fora do campo da data de nascimento.
Sou novo na linguagem.
Obrigado
minha classe para calcular a idade é:
public class CalculaIdade {
public CalculaIdade(Date data) {
System.out.println(calcIdade(data));
}
public static int calcIdade(Date dataNascimento) {
Date hoje = new Date();
Calendar cal = Calendar.getInstance();
cal.setTime(hoje);
int mes1 = cal.get(Calendar.MONTH);
int day1 = cal.get(Calendar.DAY_OF_MONTH);
int ano1 = cal.get(Calendar.YEAR);
cal.setTime(dataNascimento);
int mes2 = cal.get(Calendar.MONTH);
int day2 = cal.get(Calendar.DAY_OF_MONTH);
int ano2 = cal.get(Calendar.YEAR);
int nAno = ano1 - ano2;
System.out.format("day1: %s, day2: %s%n", day1, day2);
if (mes1 < mes2) {
nAno--;
} else if (mes1 == mes2) {
if (day1 < day2)
nAno--;
}
// Ainda não completou aniversario esse ano.
return nAno;
}
}
Minha pagina jsf:
<p:outputLabel value=“Nome” for=“nomepac” />
<p:inputText id=“nomepac” size=“40” maxlength=“255"
value=”#{cadastroPessoaBean.pessoa.nome}" />
<p:outputLabel value="Celular" for="tel" />
<p:inputMask id="tel" maxlength="20"
value="#{cadastroPessoaBean.pessoa.telefone}"
mask="([telefone removido]" />
<p:outputLabel value="RG" for="di" />
<p:inputMask id="di" size="20" maxlength="30"
value="#{cadastroPessoaBean.pessoa.rg}" />
<p:outputLabel value="Data de Nascimento" for="dataNascimento" />
<p:inputMask id="dataNascimento" maxlength="10"
value="#{cadastroPessoaBean.pessoa.dataNascimento}"
mask="99/99/9999">
<f:convertDateTime pattern="dd/MM/yyyy" />
</p:inputMask>
<p:outputLabel value="Idade" for="ida" />
<h:outputText id="ida" size="10" maxlength="10"
value="#{cadastroPessoaBean.pessoa.idade}" />
</p:panelGrid>