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!
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.