Soy nueva por aquí, y tengo una duda sobre el manejo de fechas en Java. Bueno, solo decirlos que me he pasado toda la tarde intentando buscar la solución a mi problema y no me ha funcionado nada.
Os cuento:
Tengo una clase, llamada PrestamoLibro, donde un Calendar que me saca la fecha actual que tiene el equipo, es decir, el código sería el siguiente (es global):
Código:
(Public Static porque necesito esas atributos en otra clase).public static Calendar c2prestamoL = Calendar.getInstance(); public static int dia = (c2prestamoL.get(Calendar.DATE)); public static int mes = (c2prestamoL.get(Calendar.MONTH)); public static int annio = (c2prestamoL.get(Calendar.YEAR)); public static long milis = c2prestamoL.getTimeInMillis();
Y luego, tengo otra clase, llamada PanelDevolucion, donde también saco la fecha actual del sistema y luego a través de un action performed de un botón quiero saber la diferencia de días que han transcurrido. Es decir, el código sería el siguiente:
Código:
(También le tengo puesto como global).Calendar c2prestamo = Calendar.getInstance(); int diaD = c2prestamo.get(Calendar.DATE); int mesD = c2prestamo.get(Calendar.MONTH); int annioD = c2prestamo.get(Calendar.YEAR); long milisD = c2prestamo.getTimeInMillis();
Action Performed de un botón:
Cita:
Pero cuando le doy de alta a un usuario y a una publicación (el programa es sobre la gestión de una biblioteca) y después hago préstamo de una publicación, luego cambio la fecha del sistema, y voy a devolver la publicación... la diferencia de días siempre me da 0. private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
// calcular la diferencia en milisengundos
long diff = PrestamoLibro.milis - milisD;
// calcular la diferencia en dias
long diffDays = diff / (24 * 60 * 60 * 1000);
JOptionPane.showMessageDialog(this, "Diferencia en días: "+diffDays,"OK", JOptionPane.INFORMATION_MESSAGE);
}
// calcular la diferencia en milisengundos
long diff = PrestamoLibro.milis - milisD;
// calcular la diferencia en dias
long diffDays = diff / (24 * 60 * 60 * 1000);
JOptionPane.showMessageDialog(this, "Diferencia en días: "+diffDays,"OK", JOptionPane.INFORMATION_MESSAGE);
}
He probado con otro código que encontré por internet, que si hace falta os lo muestro, pero tampoco funcionó, y no se porque me da un error de 0 días.
He pensado que quizás el problema está en los atributos de la clase PrestamoLibro, que los coge mal en la otra clase.
A ver si me podéis echar una mano...
Muchas gracias,
Un saludo.