PDA

View Full Version : differenza in giorni tra due date


gaiapuffo
20-02-2014, 11:37
Ciao,ho un problema nel confrontare la differenza in giorni tra due date..Uso questo pezzo di codice per vedere se due date sono uguali

GregorianCalendar data1 = new GregorianCalendar(2008, 11, 18);
GregorianCalendar data2 = new GregorianCalendar(2007, 11, 10);
long milliseconds1 = data1.getTimeInMillis();
long milliseconds2 = data2.getTimeInMillis();
long diff = milliseconds2 - milliseconds1;
long diffSeconds = diff / 1000; //differenza in secondi
long diffMinutes = diff / (60 * 1000); //differenza in minuti
long diffHours = diff / (60 * 60 * 1000); //differenza in orelong diffDays = diff / (24 * 60 * 60 * 1000); //differenza in giorni

Il problema e che la differenza in gironi mi da sempre 0,anche se controllo prima le date e uno mi segna 18 febbraio e l'altra 19 febbraio,come posso fare?

Oceans11
20-02-2014, 13:11
Dovresti essere pių preciso:
1) metti nel titolo tra parentesi quadre il linguaggio di programmazione che usi
2) metti il codice tra gli opportuni tag
3) specifica la parte di codice che non funziona come dovrebbe (meglio ancora se riesci a mettere un programma standalone dove stanno tutte le funzioni relative al tuo problema, cosė come un main con i test e l'output del programma.


detto questo, quel pezzo di codice funziona bene.
Inoltre, se a te interessa solo sapere se le date sono uguali o meno, perchč non usare equals?


GregorianCalendar data1 = new GregorianCalendar(2008, 11, 18);
GregorianCalendar data2 = new GregorianCalendar(2007, 11, 10);
GregorianCalendar data3 = new GregorianCalendar(2008, 11, 18);
System.out.println(data1.equals(data2));
System.out.println(data1.equals(data3));
System.out.println(data3.equals(data2));

gaiapuffo
20-02-2014, 14:14
Ok,soltanto che io voglio sapere la differenza in giorni. La data era solo per esempio,nel mio problema ho la data attuale e una data che viene passata e questo č variabile,il problema e che la differenza in giorni mi ritorna sempre 0

gaiapuffo
20-02-2014, 14:38
risolto con il grande joda time