To com um problema com data muito estranho. Preciso comparar a data atual com uma data que é digitada. Peguei um código na net que ate funciona, mas acontece algo sem nexo. Qdo rodo o programa na parte da manhã e tarde, ele retorna a quantidade certa de dias. Mas, quando rodo a noite, ele retorna um dia a mais. Não imagino oq seja… Enfim, o código:
private void ultimoPartoFocusLost(java.awt.event.FocusEvent evt) {
// TODO add your handling code here:
Date date = new Date();
String data = SimpleDateFormat.getDateInstance(SimpleDateFormat.SHORT).format(date);
String UP = ultimoParto.getText().toString();
SimpleDateFormat format = new SimpleDateFormat("dd/MM/yyyy");
try {
Date data_atual = format.parse(data);
Date data_UP = format.parse(UP);
long diasP = (data_atual.getTime() - data_UP.getTime()) / (1000 * 60 * 60 * 24);
diasDeParida.setText(String.valueOf(diasP));
} catch (Exception ex) {
System.err.println(ex);
}
}
Não sei se o problema é na forma de capturar a data no sistema ou nas contas. Eu li uma vez que é melhor usar o Calendar, mas nao descobri como fazer isso tudo nele.
