PDF download Télécharger l'article PDF download Télécharger l'article

Il existe différentes façons de comparer des dates en Java. Dans ce langage informatique, une date est représentée comme un point (de type long) dans le temps, représentant le nombre de millisecondes écoulées depuis le 1er janvier 1970. En Java, Date est un objet, ce qui signifie qu'il inclut plusieurs méthodes de comparaison. Toute méthode comparant deux dates consistera principalement en la comparaison des temps de ces dates.

Méthode 1
Méthode 1 sur 4:

À l'aide de compareTo

PDF download Télécharger l'article
  1. L'objet Date implémente Comparable<Date> et ainsi deux dates peuvent être comparées directement à l'aide de la méthode compareTo. Si les dates correspondent au même point dans le temps, la méthode renverra zéro. Si la date comparée se trouve avant la date donnée en argument, une valeur négative sera renvoyée. Si la date comparée se trouve après la date donnée en argument, une valeur positive sera renvoyée. Si les dates sont égales, la valeur renvoyée sera 0. [1]
  2. Vous devrez créer chaque objet Date avant de commencer à les comparer. Une manière de faire cela est de se servir de la classe SimpleDateFormat. Elle permet d'entrer facilement des valeurs de date dans des objets de date.
       SimpleDateFormat 
       sdf 
       = 
       new 
       SimpleDateFormat 
       ( 
       "yyyy-MM-dd" 
       ); 
       //Pour déclarer les valeurs dans les nouveaux objets Date, employez le même format de date que pour créer des dates 
       Date 
       date1 
       = 
       sdf 
       . 
       parse 
       ( 
       "1995-02-23" 
       ); 
       //La date1 est le 23 février 1995 
       Date 
       date2 
       = 
       sdf 
       . 
       parse 
       ( 
       "2001-10-31" 
       ); 
       //La date2 est le 31 octobre 2001 
       Date 
       date3 
       = 
       sdf 
       . 
       parse 
       ( 
       "1995-02-23" 
       ); 
       //La date3 est le 23 février 1995 
      
  3. Le code ci-dessous vous présentera chaque cas : inférieur, supérieur, égal.
       date1 
       . 
       compareTo 
       ( 
       date2 
       ); 
       //date1 < date2, renvoie un négatif 
       date2 
       . 
       compareTo 
       ( 
       date1 
       ); 
       //date2 > date1, renvoie un positif 
       date1 
       . 
       compareTo 
       ( 
       date3 
       ); 
       //date1 = date3, la console affichera 0 
      
    Publicité
Méthode 2
Méthode 2 sur 4:

Se servir des méthodes equals, after et before

PDF download Télécharger l'article
  1. Les dates peuvent être comparées à l'aide des méthodes equals, after et before. Si deux dates correspondent au même point temporel, la méthode equals renverra true. Les exemples suivants utiliseront les dates précédemment créées pour la méthode compareTo. [2]
  2. Le code donné ci-dessous montre un cas true et un cas false. Si la date1 se situe avant la date2, before renvoie true. Si ce n'est pas le cas, elle renvoie false.
       System 
       . 
       out 
       . 
       print 
       ( 
       date1 
       . 
       before 
       ( 
       date2 
       )); 
       //affiche true 
       System 
       . 
       out 
       . 
       print 
       ( 
       date2 
       . 
       before 
       ( 
       date2 
       )); 
       //affiche false 
      
  3. Le code donné ci-dessous montre un cas true et un cas false. Si la date1 se situe après la date2, after renvoie true. Si ce n'est pas le cas, after renvoie false.
       System 
       . 
       out 
       . 
       print 
       ( 
       date2 
       . 
       after 
       ( 
       date1 
       )); 
       //affiche true 
       System 
       . 
       out 
       . 
       print 
       ( 
       date1 
       . 
       after 
       ( 
       date2 
       )); 
       //affiche false 
      
  4. Le code donné ci-dessous montre un cas true et un cas false. Si les dates sont égales, equals renvoie true. Si ce n'est pas le cas, equals renvoie false.
       System 
       . 
       out 
       . 
       print 
       ( 
       date1 
       . 
       equals 
       ( 
       date3 
       )); 
       //affiche true 
       System 
       . 
       out 
       . 
       print 
       ( 
       date1 
       . 
       equals 
       ( 
       date2 
       )); 
       //affiche false 
      
    Publicité
Méthode 3
Méthode 3 sur 4:

Se servir de la classe Calendar

PDF download Télécharger l'article
  1. La classe Calendar comporte également les méthodes compareTo, equals, after et before, qui fonctionnent de la même manière que décrite ci-dessus pour la classe Date. Ainsi, si l'information de date est contenue dans un calendrier, il n'y a pas besoin d'extraire la date simplement pour faire une comparaison. [3]
  2. Pour vous servir des méthodes de la classe Calendar, vous aurez besoin de quelques instances de Calendar. Heureusement, vous pouvez récupérer les informations de temps à partir des instances de Date déjà créées.
       Calendar 
       cal1 
       = 
       Calendar 
       . 
       getInstance 
       (); 
       //déclare cal1 
       Calendar 
       cal2 
       = 
       Calendar 
       . 
       getInstance 
       (); 
       //déclare cal2 
       Calendar 
       cal3 
       = 
       Calendar 
       . 
       getInstance 
       (); 
       //déclare cal3 
       cal1 
       . 
       setTime 
       ( 
       date1 
       ); 
       //entre la date dans cal1 
       cal2 
       . 
       setTime 
       ( 
       date2 
       ); 
       cal3 
       . 
       setTime 
       ( 
       date3 
       ); 
      
  3. Comme cal1 se situe avant cal2, le code ci-dessous devrait faire afficher true.
       System 
       . 
       out 
       . 
       print 
       ( 
       cal1 
       . 
       before 
       ( 
       cal2 
       )); 
       //affichera true 
      
  4. Comme cal1 se situe avant cal2, le code ci-dessous devrait faire afficher false.
       System 
       . 
       out 
       . 
       print 
       ( 
       cal1 
       . 
       after 
       ( 
       cal2 
       )); 
       //fait afficher false 
      
  5. Le code donné ci-dessous présentera un exemple du cas true et un exemple du cas false. La condition dépend des instances de Calendar qui sont comparées. Ce code devrait afficher « true », suivi de « false » sur la ligne suivante.
       System 
       . 
       out 
       . 
       println 
       ( 
       cal1 
       . 
       equals 
       ( 
       cal3 
       )); 
       //fait afficher true : cal1 == cal3 
       System 
       . 
       out 
       . 
       print 
       ( 
       cal1 
       . 
       equals 
       ( 
       cal2 
       )); 
       //fait afficher false : cal1 != cal2 
      
    Publicité
Méthode 4
Méthode 4 sur 4:

Se servir de la méthode getTime

PDF download Télécharger l'article
  1. Il est également possible de comparer directement le point temporel des deux dates, bien que n'importe laquelle des approches données précédemment devrait être plus lisible et donc préférable. Il s'agira là d'une comparaison entre deux types de données primitifs, elle pourra donc être faite avec « < », « > » et « == ».
  2. Avant de pouvoir comparer les dates, il vous faut créer des entiers de type long (ou « long integers ») avec les données provenant des objets Date précédemment créés. Coup de chance, la méthode getTime() fera presque tout le travail pour vous.
       long 
       time1 
       = 
       getTime 
       ( 
       date1 
       ); 
       //déclare la primitive time1 à partir de date1 
       long 
       time2 
       = 
       getTime 
       ( 
       date2 
       ); 
       //déclare la  primitive time2 à partir de date2 
      
  3. Servez-vous du symbole « moins que » (<) afin de comparer deux valeurs d'entiers. Comme time1 est inférieur à time 2, le premier message devrait bien s'afficher. La condition « else » est incluse pour avoir une syntaxe correcte.
       if 
       ( 
       time1 
       < 
       time2 
       ){ 
       System 
       . 
       out 
       . 
       println 
       ( 
       "date1 se situe avant date2" 
       ); 
       //s'affichera car time1 <time2 
       } 
       else 
       { 
       System 
       . 
       out 
       . 
       println 
       ( 
       "date1 ne se situe pas avant date2" 
       ); 
       } 
      
  4. Servez-vous du symbole « plus que » (<) afin de comparer deux valeurs d'entiers. Comme time1 est supérieur à time 2, le premier message devrait bien s'afficher. La condition « else » est incluse pour avoir une syntaxe correcte.
       if 
       ( 
       time2 
       > 
       time1 
       ){ 
       System 
       . 
       out 
       . 
       println 
       ( 
       "date2 se situe après date1" 
       ); 
       //s'affichera car time2 > time1 
       } 
       else 
       { 
       System 
       . 
       out 
       . 
       println 
       ( 
       "date2 ne se situe pas après date1" 
       ); 
       } 
      
  5. Servez-vous du symbole de vérification d'égalité (==) pour comparer deux valeurs d'entiers et savoir si elles sont égales. Comme time1 est égal à time 3, le premier message devrait bien s'afficher. Si le code parvient à la condition else, cela veut dire que les temps ne sont pas égaux. [4]
       if 
       ( 
       time1 
       == 
       time2 
       ){ 
       System 
       . 
       out 
       . 
       println 
       ( 
       "les dates sont égales" 
       ); 
       } 
       else 
       { 
       System 
       . 
       out 
       . 
       println 
       ( 
       "les dates ne sont pas égales" 
       ); 
       //s'affichera car time1 != time2 
       } 
      
    Publicité

À propos de ce wikiHow

Cette page a été consultée 39 595 fois.

Cet article vous a-t-il été utile ?

Publicité