Calculo de Idade e retornar idade

Entendi

Talvez eu tenha que estudar mais…Darlan…também tenha esse quesito também
:slight_smile:

Essa área vai exigir que você sempre esteja estudando.
Todo dia aparecem 1000 novas tecnologias para serem usadas. Alguma delas vai ser o foco em algum momento.

Compreendi.

Eu consegui ajustar o método sendo que agora a model está OK.
package br.com.pesquisamercado.modelo;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.Month;
import java.time.Period;
import java.time.format.DateTimeFormatter;
import java.time.format.FormatStyle;
import java.time.temporal.TemporalAccessor;
import java.time.temporal.TemporalQuery;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.Locale;
import java.util.Scanner;

public class Idade {

private int idade;

public int getIdade() {
	return idade;
}

public void setIdade(int idade) {
	this.idade = idade;
}

public int calcularIdade(Date dataNascimento) {
	GregorianCalendar dataHoje = new GregorianCalendar();
	int diaAtual = 0, mesAtual = 0, anoAtual = 0; 
	diaAtual = dataHoje.get(Calendar.DAY_OF_MONTH);
	mesAtual = dataHoje.get(Calendar.MONTH) + 1;
	anoAtual = dataHoje.get(Calendar.YEAR);
	SimpleDateFormat formatador = new SimpleDateFormat("dd/MM/yyyy");
	String dtNasc = formatador.format(dataNascimento);
	String diaNasc = dtNasc.substring(0, 2);
	String mesNasc = dtNasc.substring(3, 5);
	String anoNasc = dtNasc.substring(6, 10);
	int diaNascimento = Integer.parseInt(diaNasc);
	int mesNascimento = Integer.parseInt(mesNasc);
	int anoNascimento = Integer.parseInt(anoNasc);
	idade = anoAtual - anoNascimento;
	if(mesAtual != mesNascimento) {
		if(mesAtual < mesNascimento) {
			idade--; 
			return idade; 
		}
	}
	else {
		return idade;
	}
	return idade;
}

}
No formulário que tem um campo chamado idade como você me mostrou precisa retornar nesse campo desabilitado a idade da pessoa.

Data de Nascimento: Idade: <% Date nascimento= new Date(request.getParameter("dataNascimento")); int idader = new Idade().calcularIdade(nascimento); %> Está apresentando erro, agora não sei se vou ter que colocar value=<%outprin(idader);%> Eu entendi, pois num arquivo teste com um método main funcionou.

Qual o erro que aparece?

1 curtida

Quando inicio aparece essa mensagem de erro:
5:

Idade:
96: <%
97: Date nascimento= new Date(request.getParameter(“dataNascimento”));
98: int idader = new Idade().calcularIdade(nascimento);
99: %>
100: <input type=“text” name=“idade” maxlength=“3” size=“1” value=<%=idader%> />

Stacktrace:] with root cause
java.lang.IllegalArgumentException
at java.util.Date.parse(Date.java:617)
at java.util.Date.(Date.java:274)
at org.apache.jsp.cadastraconvidado_jsp._jspService(cadastraconvidado_jsp.java:162)

Acho que consegui resolver, porém com Javascript.
Porém é uma solução bem melhor