Newsgroup: it.comp.java
Titolo: Differenze tra due date, meglio usare JODA?

Ciao a tutti,
penso che la domanda riguardo la differenza tra due date in JAVA sia
tra le piu' chieste e discusse. Googlando ho trovato vari metodi che
risponderebbero alle mie richieste... poi son capito su questo
http://www.joda.org/
.
Avete provato l'implementazione offerta da Joda? Consigliate qualcosa
altro?
Grazie
r.

 r.
Cosa ne pensi di questo?
    public static void main(String[] args)
    {
        Date before = new Date();
        try  {Thread.sleep(1000);} catch (InterruptedException ex)
{  }
        Date after = new Date();
        Date diff = new Date(after.getTime() - before.getTime());
        System.out.println(diff);
    }
---
Articoli ed Esempi su
[Java EE, EJB, Servlet, JSP, WebService, Glassfish, Java ME etc]
http://programmaremobile.blogspot.com

         System.out.println(diff);
uhm... poi non mi troov con lo stesso problema di prima. Nel senso, se
faccio la differenza tra due date che comprendono svariati anni e
voglio sapere il numero di giorni non e' cosi' immediato (imho) con il
metodo che mi hai appena indicato.
Ammetto di non conoscere bene la classe Date di JAVA e quindi ti prego
di correggermi dove opportuno.
Con il metodo che mi hai postato, diff conterra' una data che meno
1/1/1970 mi fornira' i dati di cui ho bisogno. Ma come faccio ad
esempio ad ottenere il numero di giorni tra le due date? Di certo non
posso fare semplici divisioni sul getTime di diff, perche' dovrei
tenere conto degli anni bisestili e i vari altri problemi.
Perdona le mie imprecisioni e se puoi "schiariscimi" le idee :P
r.


Allora di preciso vuoi sapere quanti giorni di differenza ci sono tra
una data ed un'altra?
Fammi un esempio di dati di input e di output che intendi ottenere

 Perdona le mie imprecisioni e se puoi "schiariscimi" le idee :P
Se hai tempo prova a leggere 
http://www.taringamberini.com/italiano/differenza_date.shtml
ho fatto anche due classettine di test che puoi scaricare.
Ciao,
Tarin
--
Tarin Gamberini
www.taringamberini.com

> In realtà l'ipotesi è errata poichè non tutti i giorni durano 24 ore.
Scusa, ma di quale giorno stiamo parlando?
Quello solare medio (terrestre, ovviamente), utilizzato dai comuni 
mortali (e dai computer) per misurare il tempo, dura sempre 24 ore. E' 
l'anno che non dura sempre 365 giorni... Ti servono i giorni, o gli anni?

  );
Poi se si vuole essere più pignoli c'e' anche la questione del leap second.
-- 
Andrea Francia
http://andreafrancia.blogspot.com/2008/07/colinux-linux-dentro-windows.html

 
Sono d'accordo sul fatto che ci siano delle convenzioni, rispettando le 
quali si ottengono conclusioni sensate (consistenti), ma se attraverso 
getTime ottengo un giorno più lungo degli altri allora comincio ad 
ipotizzare che getTime usi una convenzione diversa da quella di noi 
comuni mortali ;-)


 Fammi un esempio di dati di input e di output che intendi ottenere
Ad esempio, un oggetto con un metodo che accetti due date come
parametri e ne calcoli la differenza  e che mi fornisca la
possibilita' di ottenerla in forma di: anni,mesi,giorni,ore,minuti e
secondi.
Adesso facendo un po' di prove, ho fatto anche una cosa del genere:
Calendar1.add(Calendar.YEAR,- Calendar2.get(Calendar.YEAR));
e cosi' via... passando al metodo add(int field, int value) un valore
negativo. E in effetti ottengo dei risultati soddisfacenti.
Che ne dici?
grazie
r.

 risponderebbero alle mie richieste... poi son capito su questohttp://
www.joda.org/
.



Non conosco JODA quindi non posso fare confronti.
Ti posso dire però che, secondo me, la soluzione di combinare gli
oggetti Date con Calendar è una buona soluzione.


ho deciso di includere nel mio progetto le librerie Joda-time (http://
joda-time.sourceforge.net/
) e DateCalc (http://
objectlabkit.sourceforge.net/
).
r.

alla fine ho deciso. Ho incluso nel progetto due librerie:
joda-time 
http://joda-time.sourceforge.net/
datecalc-joda 
http://objectlabkit.sourceforge.net/multiproject/datecalc-joda/index.html
vi consiglio di dargli un'occhiata ;)
r.