Comparação de datas

Pessoal

Como eu consigo comparar datas, as datas são String. Quero comparar se a data de vencimento é anterior ou igual à data de pagamento, se positivo não ocorrerá multa, caso contrário, ocorrerá a multa.

:tosco:

Por favor, me ajudem!

Opa,

converta-as para java.util.date e depois compare:

DateFormat df = DateFormat.getInstance(); Data d1 = df.parse(string1); Data d2 = df.parse(string2); if (d1.compareTo(d2) > 0) ...

Marcos,

Obrigada pela dica, mas está dando o erro abaixo:

found : java.util.Date
required: javax.xml.crypto.Data
Data d1 = df.parse(data);
Data d2 = df.parse(vencimento);

data é a data do pagamento e vencimento é a data do vencimento da mensalidade do aluno. As duas variáveis, que são string, estão recebendo um txt.

Vc pode me ajudar?

Olá Carla,

você tem que importar:
java.util.Calendar e java.util.date.

qualquer coisa coloque o código completo.

Oi Marcos,

Importei o java.util.Calendar mas continuo com problemas. Vamos ao código.

Criei o método abaixo para pegar a data do sistema:
private String DataAtual() {
SimpleDateFormat formatter = new SimpleDateFormat(formato);
String data = formatter.format(hoje);
return data;
}

E no método calcular, que calcula o desconto de bolsa, caso o aluno a possua e a multa se já tiver passado o vencimento, coloquei o código que você postou:

DateFormat df = DateFormat.getInstance();
Data d1 = df.parse(data.getText());
Data d2 = df.parse(vencimento.getText());

Só que o netbeans sugeriu que eu circundasse com try e catch, então ficou assim:

    try {
        d1 = df.parse(data);
    } catch (java.text.ParseException ex) {
        ex.printStackTrace();
    }
    try {
        d2 = df.parse(vencimento);
    } catch (java.text.ParseException ex) {
        ex.printStackTrace();
    } 

Mais abaixo eu indiquei quem são data e vencimento:

vencimento = txtVencimento.getText();
data = txtData.getText();

E comparei para saber se tem multa ou não:

if (d1.compareTo(d2)>0){
multa = (valor * 10)/ 100;
txtMulta.setText(String.valueOf(multa));
} else{
multa = 0;
txtMulta.setText(String.valueOf(multa));
}

O programa compila, mas na hora de executar, ele indica um erro na linha

d1 = df.parse(data);

Vc pode me dizer se tem alguma coisa errada, ou se está faltando alguma coisa???

Obrigada.