Newsgroup: it.comp.java
Titolo: differenza delle ore fra due date

 
          Ciao a tutti
ho due date es 2004-09-01 10:20:55 e 2004-09-02 10:19:48 , devo sapere se
fra le due date sono passate più o meno di 24 ore, si insomma mi servirebbe
trovare un metodo che date due date (scusate il gioco di parole) mi ritorni
la differenza di ore tra le due
Grazie a tutti
Fede
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/




fai il solito TimeZone GMT + 1 (Roma)
ora ti fai 2 GregorianCalendar con il TimeZone : GC1 e GC2
a GC1 setti a mano la data maggiore delle 2
a GC2 l'altra
ora fai
(GC1.getTime().getTime() - GC2.getTime().getTime())
 / 1000 / 60 / 60
e hai le ore di differenza
   cya Nicola



GregorianCalendar gc2 = new
GregorianCalendar(TimeZone.getTimeZone("GMT+1"));
GregorianCalendar gc1 = new GregorianCalendar(2004,8,11,10,25);
long totOre=(gc2.getTime().getTime() - gc1.getTime().getTime()) / 1000 / 60
/ 60;
Mi sa che ho sbagliato qualcosa :(:(:(:(:(:(


   java.util.GregorianCalendar gc1 = new
       java.util.GregorianCalendar(java.util.TimeZone.getTimeZone("GMT+1"));
   gc1.set(2004,9,01,10,20,55);
   java.util.GregorianCalendar gc2 = new
        java.util.GregorianCalendar(java.util.TimeZone.getTimeZone("GMT+1"));
   gc2.set(2004,9,02,10,19,48 );
   long totOre=(gc2.getTime().getTime() - gc1.getTime().getTime()) / 1000 / 60
/ 60;
MArooooooo come so buono oggi
l'hopure testato mi da 23
  ciao Buona giornata


Prova con questa soluzione.
        String pattern = "yyyy-MM-dd HH:mm:ss";
        String data1 = "2004-09-01 10:20:55";
        String data2 = "2004-09-02 10:19:48";
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat(pattern);
        try {
            Date date1 = simpleDateFormat.parse(data1);
            Date date2 = simpleDateFormat.parse(data2);
            long diff = Math.abs(date1.getTime() - date2.getTime());
            long ore = diff / 1000 /60 / 60;
            System.out.println("La differenza tra " + data1 + " e " + data2
+ " è di " + ore + " ore");
        } catch (java.text.ParseException ex) {
            System.out.println("Errore durante il calcolo della
differenza");
        }
Risultato:
    La differenza tra 2004-09-01 10:20:55 e 2004-09-02 10:19:48 è di 23 ore
Domenico Loiacono

 Domenico Loiacono
E' il suo giorno fortunato:
2 soluzioni
proprio l'altro giorno uno si e' preso del lavativo
per aver chiesto una cosa simile
 
N


 per aver chiesto una cosa simile
Infatti; penso che se cambiassi il mio nick in Pamela di soluzioni ne
prenderei anche 4 alla volta. :-))
Come al solito bravi tutti!
Saluti Enzo.

 / 60;
Attenzione a 2 cose.
1) Le due date non rappresentano 1 e 2 di settembre 2004 ma 1 e 2 di 
OTTOBRE 2004. Questo perché nel Calendar i mesi vanno da 0 a 12.
2) Quale deve essere la differenza fra 30 ott 2004 10:20:55 e 31 ott 
2004 10:19:48? (suggerimento: nella notte fra il 30 e il 31 ritornerà 
l'ora solare).
Il tempo effettivamente passato fra i due momenti è più di 24 ore ma 
l'algoritmo riportato darà 23. Questo perché la timezone "GMT+1" non 
gestisce l'ora legale.
Se si vuole tener conto di questo fatto utilizzare questo codice:
     Calendar gc1 = Calendar.getInstance(Locale.ITALY);
     gc1.set(2004, 9, 30, 10, 20, 55);
     Calendar gc2 = Calendar.getInstance(Locale.ITALY);
     gc2.set(2004, 9, 31, 10, 19, 48);
     long totOre = (gc2.getTime().getTime() - gc1.getTime().getTime()) / 
1000 / 60 / 60;
Qui', in pratica, ho utilizzato il timezone dell'italia (che non è 
"GMT+1", anche se il fuso orario è quello). Ho anche utilizzato Calendar 
al posto di GregorianCalendar in quanto più generico.
Se sulla macchina in cui l'applicazione è in esecuzione il Locale di 
default è quello italiano avrei potuto anche scrivere:
Calendar gc1 = Calendar.getInstance();
...
Andrea

 ...
Leggendo un post di qualche giorno fa mi sono accorto che il timezone 
associato al locale italiano non è "Europe/Rome" come mi sarei 
aspettato, ma "Europ/Berlin".
Mi chiedo a questo punto:
1) ci sono differenze fra queste due timezone? Entrambe appartengono a 
GMT+1 e attualmente dovrebbero gestire l'ora legale nello stesso modo, 
ma in passato?
2) perché la libreria associa berlino all'italia?
Andrea

 Andrea Polci wrote:
Se rispondo spesso ai quesiti di date e'
1) perche per lavoro ci ho scraniato NN volte
2) alla fine mi sono appassionato
le tue riflessioni sono mucho interessnti appena ho un po' di tempo ci
rifletto un po' su anchio
Aalla storia di Berlino vorrei andare afondo.
La avevo gia' notata, ma non gli avevo datoil peso dovuto
 a presto.


 aspettato, ma "Europ/Berlin".
Dunque proprio riguardo al Locale...
Ho il seguente problema in delle pagine jsp, e comunque in delle classi 
java: utilizzo per generare l'ora corrente, l'oggetto date e il simple 
data format per la formattazione della data, avendo lasciato 
inizialmente da parte il calendar. Ora succede che mandando in 
esecuzione sia le pagine, che le classi sulla mia macchina, viene 
mostrata l'ora corretta, mentre su un server remoto, viene mostrato 
l'orario con due ore di anticipo, come è possibile ciò?! (Preannuncio 
che l'os del server è win2003...)
Molto probabilmente credo sia un problema di locale, ma come posso 
risolvere la questione, senza dover cambiare tutte le pagine e le 
classi!? (Se invece, dovrò cambiarle, qual'è la via "meno dolorosa"!? :-D)
Grazie in anticipo,
jRed
PS: Anche se non mi chiamo Pamela, spero che qualche animo gentile passi 
per questo post! :-D


Be' il problema del Locale nasce proprio sul webvistro che le pagine le
vedono ovunque.
se non vuoi riarchitetturare.
mi viene in mente che fai un mini-bean che ti da l'ora del server anziche
quella del client.
pero' a Okinawa gli daranno l'ora di Berlino(visto che Roma sembra razziata)
Struts (come sempre)
sarebbe la soluzione ottima. Gestisce il locale splendidamente.
     cya Nicola


 sarebbe la soluzione ottima. Gestisce il locale splendidamente.
Si avevo sentito delle potenzialitò di struts, secondo voi, per gli 
sviluppi futuri di un "portale" sarà possibile fare un porting dal jsp 
model 1 al pattern mvc e lavorare sotto struts o bisognerà "ricostruire" 
da 0!?
Grazie in anticipo,
jRed
PS: scusate per l'ultima domanda un po' OT!