Amigo,
Evite usar os construtores de Date Deprecated.
Sugestões:
Para trabalhar com e Calculos de Data use Calendar.
Para somente exibir ou formatar datas vc usa o DateFormat.
Para transportar e comparar valores de data você deve usar o Date.
Eu teria feito seu exemplo dessa forma:
private DateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy");
public void dataAtual() {
final Date dataAtual = new Date(System.currentTimeMillis());
JOptionPane.showMessageDialog(null, "Data atual: " + dateFormat.format(dataAtual), "Data atual", 3);
}
public void dataVencimento() {
final String vencimento = JOptionPane.showInputDialog("Vencimento do emprestimo");
//Se a String vencimento jah esta formatada nao precisa formatar denovo!
JOptionPane.showMessageDialog(null, "Data vencimento: " + vencimento, "Data do vencimento", 3);
}
Para somar/subtrair Datas procure consultar o método:
Exemplo:
Se eu quiser 31 dias antes da data de hoje eu faço assim:
Calendar c = Calendar.getInstance();
c.add(Calendar.DATE, -31);
System.out.println(dateFormat.format(c.getTime()));
Se você quiser fazer a diferença em dias de duas datas você tem que pegar a diferença do valor long em ms delas e fazer os cálculos.
Exemplo:
GregorianCalendar c1 = new GregorianCalendar();
c1.set(2010, Calendar.AUGUST, 15); // 15/08/2010
GregorianCalendar c2 = new GregorianCalendar(); //data atual
long diferenca = c2.getTimeInMillis() - c1.getTimeInMillis();
long segundos = diferenca / 1000l; //Transformando milisegundos em segundos
System.out.println("Segundos: " + segundos);
long horas = (segundos / 60) / 60; // segundos -> horas
System.out.println("Horas: " + horas);
long dias = horas / 24; // horas -> dias
System.out.println("Diferenca em Dias: " + dias); //Vai imprimir 25.
Espero ter ajudado.