JSP - Comparação entre datas utilizando um IF

4 respostas
A

Bom dia pessoal, e o seguinte, estou fazendo um sistema EM que o usuario informa uma data na pagina CADVISITA.JSP, informado, passo ela para a pagina GERAR.JSP que inseri no banco de dados, mas antes eu preciso verificar se a data informada foi lançada no mesmo mes pra frente ou antes, se for lançada no mesmo mes ou pra frente esta ok dai pode inserir, se não ele joga pro else que não inseri.

Eu so tenho um if mesmo para comparação e estou usando assimna pagina GERAR.JSP :
obs. so dois estão como tipo Date.

SimpleDateFormat sdf= new SimpleDateFormat("dd/MM/yyyy");
Date agora = new Date();
				
					
SimpleDateFormat df= new SimpleDateFormat("01/MM/yyyy");
Date data2 = new Date();


 if(dataenvio.after(data2))  {	
PreparedStatement ps = conn.prepareStatement("insert into visitas(id, id_usuario, datavisita, datacadastro, nomevisitado, cooperado, contacorrente, fone, zonarural, km, assuntoprincipal, id_pac, gerente, desc_pac, usuario) values(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?,?,?,?)");
 
					ps.setInt(1, id);
					ps.setString(2, (String)session.getAttribute("Id_usuario"));
					ps.setString(3,  sdf.format(dataenvio));
					ps.setString(4, sdf.format(agora));
					ps.setString(5,nome);
					ps.setString(6, cooperado);
					ps.setString(7, cc);
					ps.setString(8, fone);	
					ps.setString(9, zrural);
					ps.setString(10, km);
					ps.setString(11, anotacoes);
					ps.setString(12, (String)session.getAttribute("id_pac"));
					ps.setString(13, (String)session.getAttribute("Nome_usuario"));							ps.setString(14, (String)session.getAttribute("desc_pac"));	
					ps.setString(15, (String)session.getAttribute("usuario"));	
	
					ps.executeUpdate();
					
					out.println("<center>");
					out.println("<br></br>");
					out.println("<b><font size=3> Visita informada com sucesso!");
					
					out.println("</center>");
					}

else {
   out.println("<center>");
              out.println("<b><font size=3>Não foi possivel informar os dados, devido o periodo ja ter acabado!");
   out.println("</center>");		
				}

se alguem puder me ajudar agradeço muito.

abraços!!

4 Respostas

I

Geralmente eu faria uma solicitação para servlet e depois converteria a String passada para tipo java.util.Date depois se for para verificar se data 1 é maior que data 2 por exemplo usaria seu método getTime() que retorna o valor da data em milesegundos agora se você quer comparar o mesmo mês sugiro que use a classe “Calendar” lá tem uns métodos bacanas que ajudam a fazer isso para você, flw!

A

vlw Ivan Alves, em voce tem algum exemplo em que eu possa me basear??

abraços.

I

Primeiramente passe os parametros da JSP para uma Servlet se você não sabe como fazer sugiro que pegue alguma apostila ou tutorial na net que tem aos montes depois disso use uma classe de conversão do Java para converter String para Date por exemplo:

java.text.SimpleDateFormat formatar = new java.text.SimpleDateFormat("dd/MM/yyyy"); //converte para padrão brasileiro dia/mês/ano
String dataString1 = "10/08/2011";
String dataString2 = "21/08/2011";

//aqui realizo a conversão
Date data1 = formatar.parse(dataString1); //use o método parse e passe uma String no formato dd/MM/yyyy
Date data2 = formatar.parse(dataString2);

//faça as comparações necessárias
if(data1.getTime() == data2.getTime()){
       System.out.println("data1 igual a data2");
}else if(data1.getTime() > data2.getTime()){
      System.out.println("data1 maior a data2");
}else{
      System.out.println("data1 menor a data2");
}
para usar Calendar pode ser feito assim por exemplo
//Usando Calendar
Calendar c1 = Calendar.getInstance();
Calendar c2 = Calendar.getInstance();
c1.setTime(data1); //passa suas data do tipo java.util.Date
c2.setTime(data1); //passa suas data do tipo java.util.Date
        
if(c1.get(Calendar.YEAR) == c2.get(Calendar.YEAR) && c1.get(Calendar.MONTH) == c2.get(Calendar.MONTH)){
      System.out.println("Datas no mesmo mês");
}

flw!

A

Deu certo!!!

vlw Ivan Alves !!

Abraços.

Criado 31 de agosto de 2011
Ultima resposta 31 de ago. de 2011
Respostas 4
Participantes 2