[Resolvido] Problemas no retorno com after em datas

4 respostas
Gustavo_D_Martins
Estou tentando fazer uma comparação para saber se a data que o usuário digita é maior que a do pc porém o retorno true não está entrando.... Alguém poderia me ajudar?
public class Data {
    int dia;
    int mes;
    int ano;


    Data(){
        Calendar calendario = Calendar.getInstance();
        dia = calendario.get(Calendar.DAY_OF_MONTH);
        mes = calendario.get(Calendar.MONTH);
        ano = calendario.get(Calendar.YEAR);
       // System.out.println(calendario);
        System.out.println(dia);
        System.out.println(mes);
        System.out.println(ano);
        System.out.println(Maior(calendario));
   }

  private boolean Maior(Calendar dt){

      String data;
      data = JOptionPane.showInputDialog("Entre com a data dd/mm/aaaa");
      if(dt.after(data)){
          return true;
      }else{
       return false;}
      
   }

}

4 Respostas

F
Gustavo D. Martins:
Estou tentando fazer uma comparação para saber se a data que o usuário digita é maior que a do pc porém o retorno true não está entrando.... Alguém poderia me ajudar?
public class Data {
    int dia;
    int mes;
    int ano;


    Data(){
        Calendar calendario = Calendar.getInstance();
        dia = calendario.get(Calendar.DAY_OF_MONTH);
        mes = calendario.get(Calendar.MONTH);
        ano = calendario.get(Calendar.YEAR);
       // System.out.println(calendario);
        System.out.println(dia);
        System.out.println(mes);
        System.out.println(ano);
        System.out.println(Maior(calendario));
   }

  private boolean Maior(Calendar dt){

      String data;
      data = JOptionPane.showInputDialog("Entre com a data dd/mm/aaaa");
      if(dt.after(data)){
          return true;
      }else{
       return false;}
      
   }

}

Boa tarde Gustavo

estou colando o fonte do metodo que tu estas usando
public boolean after(Object paramObject)
  {
    return ((paramObject instanceof Calendar) && (compareTo((Calendar)paramObject) > 0));
  }
ou seja, se a tua comparação não enviar uma instancia de Calendar vai retornar false de cara. o retorno do teu
String data;
      data = JOptionPane.showInputDialog("Entre com a data dd/mm/aaaa");
é uma String, transforme isso em um Calendar para fazer a comparação.
Gustavo_D_Martins

Eu fiz a coversão para o formato Date ao inves de string, mas ainda está saindo apenas falso as entradas na comparação não estão batendo… oq acha que devo alterar…?

DateFormat formatter ;
 Date date ;
 formatter = new SimpleDateFormat("dd/MM/yyyy");
 date = (Date)formatter.parse(data);
 Calendar cal=Calendar.getInstance();
 cal.setTime(date); 
      if(dt.after(date)){     
          return true;
      }else{
       return false;}
julianolandim

fiz algumas alteracoes no seu codigo, faça um teste.

/**
 *
 * @author Juliano Landim 
 * @date 20/02/2012
 */
package guj;


import java.util.Calendar;
import javax.swing.JOptionPane;

public class Data {

    int dia;
    int mes;
    int ano;

    Data()  {
        Calendar calendario = Calendar.getInstance();
        dia = calendario.get(Calendar.DAY_OF_MONTH);
        calendario.set(Calendar.MONTH, Calendar.MONTH);
        mes = calendario.get(Calendar.MONTH);
        ano = calendario.get(Calendar.YEAR);
        // System.out.println(calendario);  
        System.out.println(dia);
        System.out.println(mes);
        System.out.println(ano);
        System.out.println(dia + "/" + mes + "/" + ano);
        System.out.println(Maior(calendario));
    }

    private boolean Maior(Calendar dt){

        String dataStr;
        dataStr = JOptionPane.showInputDialog("Entre com a data dd/mm/aaaa");
        
        String[] data = dataStr.split("\\/");
        Calendar dataDig = Calendar.getInstance();
        dataDig.set(Calendar.DAY_OF_MONTH, Integer.parseInt(data[0]));
        dataDig.set(Calendar.MONTH, Integer.parseInt(data[1]));
        dataDig.set(Calendar.YEAR, Integer.parseInt(data[2]));

        if (dataDig.after(dt)) {
            return true;
        } else {
            return false;
        }

    }

    public static void main(String[] args) {
        
            new Data();
      
    }
}

Boa Sorte !!!

Gustavo_D_Martins

Agora funcionou…Vlw rapaz…xD

Criado 20 de fevereiro de 2012
Ultima resposta 20 de fev. de 2012
Respostas 4
Participantes 3