comparer deux dates

10 réponses
Avatar
edouma
Bonjour,je suis debutant en java.
Mon probleme est que je souhaiterais comparer deux dates "jj-mm-aaaa HH:mm" la première provient d'une base de donnée et la seconde est celle de la machine locale. et j'aimerais comparer les deux dates afin de déclencher un processus dès qu'il y a un écart d'une heure.

10 réponses

Avatar
Fos Pat
edouma wrote:
Mon probleme est que je souhaiterais comparer deux dates "jj-mm-aaaa
HH:mm"



date1.getTime() - date2.getTime() te donnera le nombre de millisecondes de
différence entre tes 2 dates.

Ou sinon joda time
http://joda-time.sourceforge.net/key_interval.html
Avatar
Christian Laborde
compareTo

public int compareTo(Date anotherDate)

Compares two Dates for ordering.

Specified by:
compareTo in interface Comparable<Date>

Parameters:
anotherDate - the Date to be compared.
Returns:
the value 0 if the argument Date is equal to this Date; a value less
than 0 if this Date is before the Date argument; and a value greater than 0 if
this Date is after the Date argument.

Fos Pat a écrit :
edouma wrote:
Mon probleme est que je souhaiterais comparer deux dates "jj-mm-aaaa
HH:mm"



date1.getTime() - date2.getTime() te donnera le nombre de millisecondes de
différence entre tes 2 dates.

Ou sinon joda time
http://joda-time.sourceforge.net/key_interval.html





--
Christian Laborde
La Révolution citoyenne, c'est sur : http://c.lab.over-blog.com/
Le forum des électrons libres : http://electrons-libres.forumactif.fr
True E-mail : remove -no-spam-
Rte de la Conversion, 20
CH 1095 Lutry
Suisse
Avatar
Fos Pat
Christian Laborde wrote:
compareTo
Compares two Dates for ordering.



Il veut l'écart entre les 2 dates: compareTo ne le donne pas et ne sera donc
d'aucune utilité dans ce cas.
Avatar
phil89
Bonjour

J'utilise l"Api Bigdate
http://mindprod.com/jgloss/bigdate.html

Philippe
Avatar
captainpaf
> Bonjour

J'utilise l"Api Bigdate
http://mindprod.com/jgloss/bigdate.html

Philippe



c'est bien compliqué tout ça, pourquoi pas simplement avec Calendar
(GregorianCalendar) ?
Avatar
ToOmS
On 1 oct, 21:05, captainpaf wrote:
> Bonjour

> J'utilise l"Api Bigdate
>http://mindprod.com/jgloss/bigdate.html

> Philippe

c'est bien compliqué tout ça, pourquoi pas simplement avec Calendar
(GregorianCalendar) ?



Tt à fait ; on peut mêm se contenter de comparer l'écart en minutes :
la période de 60 (qd il y a plus d'une heure d'écart, par exemple)
n'empêche pas, si je comprends bien ton problème, de savoir si un
plusieurs quarts d'heure sont passés (reste de la division par 15 ==
0).
Avatar
Mayeul
ToOmS a écrit :
On 1 oct, 21:05, captainpaf wrote:
Bonjour
J'utilise l"Api Bigdate
http://mindprod.com/jgloss/bigdate.html
Philippe


c'est bien compliqué tout ça, pourquoi pas simplement avec Calendar
(GregorianCalendar) ?



Tt à fait ; on peut mêm se contenter de comparer l'écart en minutes :
la période de 60 (qd il y a plus d'une heure d'écart, par exemple)
n'empêche pas, si je comprends bien ton problème, de savoir si un
plusieurs quarts d'heure sont passés (reste de la division par 15 = > 0).



La solution initiale de prendre la différence des millisecondes me
semble beaucoup plus fiable.

En effet si on cherche une différence d'une heure ou plus, les deux
dates, si elles sont efectivement plus espacées, ne sont pas dans la
même heure, genre la première entre 14h00 et 14h59 et la deuxième entre
15h00 et 15h59. Même problème avec le jour, etc.

--
Mayeul
Avatar
ToOmS
C'est juste... je me complique la vie... Je vais prendre mes gouttes...
Avatar
Yliur
captainpaf a écrit :
Bonjour

J'utilise l"Api Bigdate
http://mindprod.com/jgloss/bigdate.html

Philippe



c'est bien compliqué tout ça, pourquoi pas simplement avec Calendar
(GregorianCalendar) ?




Oui, la méthode add() de Calendar permet d'ajouter facilement une
heure à une date. Et ensuite before(), after() ou compareTo() permettent
de comparer les deux dates. C'est (un peu) plus lisible qu'utiliser
des calculs en millisecondes.
Avatar
Mayeul
Yliur a écrit :
captainpaf a écrit :
Bonjour

J'utilise l"Api Bigdate
http://mindprod.com/jgloss/bigdate.html

Philippe



c'est bien compliqué tout ça, pourquoi pas simplement avec Calendar
(GregorianCalendar) ?




Oui, la méthode add() de Calendar permet d'ajouter facilement une
heure à une date. Et ensuite before(), after() ou compareTo() permettent
de comparer les deux dates. C'est (un peu) plus lisible qu'utiliser
des calculs en millisecondes.




Débatable : il faut alors créer un objet Calendar à l'une des dates, lui
ajouter une heure, obtenir une date correspondante et la comparer à la
deuxième date.

Je ne suis pas sûr que ça soit plus lisible que

date2.getTime() - date1.getTime() > REQUIRED_ELAPSED_TIME


C'est aussi bien plus gourmand en ressources, donc pas forcément
souhaitable si c'est fait en masse.

--
Mayeul