4 façons de comparer deux dates en Java

Table des matières:

4 façons de comparer deux dates en Java
4 façons de comparer deux dates en Java

Vidéo: 4 façons de comparer deux dates en Java

Vidéo: 4 façons de comparer deux dates en Java
Vidéo: Setting Export Resolution Inkscape 1.2 2024, Mars
Anonim

Il existe différentes manières de comparer les dates Java. En interne, une date est représentée comme un point (long) dans le temps - le nombre de millisecondes qui se sont é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 de comparaison de deux dates comparera essentiellement les heures des dates.

Pas

Méthode 1 sur 4: Utilisation de compareTo

4301351 1
4301351 1

Étape 1. Utilisez compareTo

Date implémente Comparable et ainsi deux dates peuvent être comparées directement avec la méthode compareTo. Si les dates correspondent au même moment, la méthode renvoie zéro. Si la date comparée est antérieure à l'argument date, une valeur inférieure à zéro est renvoyée. Si la date comparée est postérieure à l'argument date, une valeur supérieure à zéro est renvoyée. Si les dates sont égales, une valeur de 0 est renvoyée.

4301351 2
4301351 2

Étape 2. Créez les objets de date

Vous devrez créer chaque objet date avant de pouvoir commencer à les comparer. Une façon de procéder consiste à utiliser la classe SimpleDateFormat. Il permet une entrée facile des valeurs de date dans des objets de date.

    SimpleDateFormat sdf = new SimpleDateFormat("aaaa-MM-jj"); //Pour déclarer des valeurs dans les nouveaux objets de date. utiliser le même format de date lors de la création de dates Date date1 = sdf.parse("1995-02-23"); //date1 est le 23 février 1995 Date date2 = sdf.parse("2001-10-31"); //date2 est le 31 octobre 2001 Date date3 = sdf.parse("1995-02-23"); //date3 est le 23 février 1995

4301351 3
4301351 3

Étape 3. Comparez les objets de date

Le code ci-dessous vous montrera chaque cas - inférieur à, égal et supérieur à.

    date1.comparerÀ(date2); //date1 < date2, renvoie moins de 0 date2.compareTo(date1); //date2 > date1, renvoie une valeur supérieure à 0 date1.compareTo(date3); //date1 = date3, donc affichera 0 sur la console

Méthode 2 sur 4: Utilisation de Equals, After et Before

4301351 4
4301351 4

Étape 1. Utilisez des égaux, après et avant

Les dates peuvent être comparées avec les méthodes égales, après et avant. Si deux dates correspondent au même moment, la méthode equals renverra true. Les exemples utiliseront des dates précédemment créées à partir de la méthode compareTo.

4301351 5
4301351 5

Étape 2. Comparez en utilisant la méthode avant

Le code ci-dessous montre un cas vrai et faux. Si date1 est avant date2, avant renvoie vrai. Si ce n'est pas le cas, before renvoie false.

    System.out.print(date1.before(date2)); //imprime true System.out.print(date2.before(date2)); // imprime faux

4301351 6
4301351 6

Étape 3. Comparez en utilisant la méthode après

Le code ci-dessous montre un cas vrai et faux. Si date2 est postérieure à date1, after renvoie true. Si ce n'est pas le cas, after renvoie false.

    System.out.print(date2.after(date1));//imprime true System.out.print(date1.after(date2));//imprime false

4301351 7
4301351 7

Étape 4. Comparez en utilisant la méthode d'égalité

Le code ci-dessous montre un cas vrai et faux. Si les dates sont égales, equals renvoie true. Si ce n'est pas le cas, equals renvoie false.

    System.out.print(date1.equals(date3));//imprime true System.out.print(date1.equals(date2));//imprime false

Méthode 3 sur 4: Utilisation de la classe Calendar

4301351 8
4301351 8

Étape 1. Utilisez le calendrier

La classe de calendrier a également des méthodes compareTo, equals, after et before qui fonctionnent de la même manière que celle décrite ci-dessus pour la classe de date. Ainsi, si les informations de date sont contenues dans un calendrier, il n'est pas nécessaire d'extraire la date uniquement pour effectuer une comparaison.

4301351 9
4301351 9

Étape 2. Créez des instances de Calendrier

Pour utiliser les méthodes Calendar, vous aurez besoin de quelques instances Calendar. Heureusement, vous pouvez simplement récupérer les heures des instances de date déjà créées.

    Calendrier call1 = Calendar.getInstance(); //déclare cal1 Calendar cal2 = Calendar.getInstance(); //déclare cal2 Calendrier cal3 = Calendar.getInstance(); //déclare cal3 cal1.setTime(date1); // applique la date à call1 cal2.setTime(date2); cal3.setTime(date3);

4301351 10
4301351 10

Étape 3. Comparez cal1 et cal2 en utilisant avant

Le code ci-dessous doit afficher true puisque cal1 est avant cal2.

    System.out.print(cal1.before(cal2)); // affichera vrai

4301351 11
4301351 11

Étape 4. Comparez cal1 et cal2 en utilisant après

Le code ci-dessous doit afficher false puisque cal1 est avant cal2.

    System.out.print(cal1.after(cal2)); // imprime faux

4301351 12
4301351 12

Étape 5. Comparez cal1 et cal2 en utilisant des valeurs égales

Le code ci-dessous montrera un exemple de cas vrai et faux. La condition dépend des instances de calendrier comparées. Le code doit afficher "true", puis "false" sur la ligne suivante.

    System.out.println(cal1.equals(cal3)); //imprime vrai: cal1 == cal3 System.out.print(cal1.equals(cal2)); // affiche false: cal1 != cal2

Méthode 4 sur 4: Utilisation de getTime

4301351 13
4301351 13

Étape 1. Utilisez getTime

Il est également possible de comparer directement le moment de deux dates, bien que l'une des approches précédentes soit susceptible d'être plus lisible et donc préférable. Ce sera une comparaison de deux types de données primitifs, donc cela peut être fait avec "", et "==".

4301351 14
4301351 14

Étape 2. Créez les objets de longue durée

Avant de pouvoir comparer les dates, vous devez créer des entiers longs avec les données des objets Date précédemment créés. Heureusement, la méthode getTime() fera la plupart du 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

4301351 15
4301351 15

Étape 3. Faites une comparaison inférieure

Utilisez le symbole inférieur à (<) pour comparer ces deux valeurs entières. Étant donné que time1 est inférieur à time 2, le premier message doit s'imprimer. L'instruction else est incluse pour une syntaxe correcte.

    if(time1 < time2){ System.out.println("date1 est avant date2"); // imprimera depuis time1 <time2 } else{ System.out.println("date1 n'est pas avant date2"); }

4301351 16
4301351 16

Étape 4. Faites une comparaison supérieure

Utilisez le symbole supérieur à (>) pour comparer ces deux valeurs entières. Étant donné que time1 est supérieur à time 2, le premier message doit s'imprimer. L'instruction else est incluse pour une syntaxe correcte.

    if(time2 > time1){ System.out.println("date2 est après date1"); // imprimera depuis time2 > time1 } else{ System.out.println("date2 n'est pas après date1"); }

4301351 17
4301351 17

Étape 5. Faites une comparaison égale

Utilisez le symbole pour vérifier l'égalité (==) pour comparer ces deux valeurs entières pour l'égalité. Puisque time1 est égal à time3, le premier message doit s'imprimer. Si le programme atteint l'instruction else, cela signifie que les temps ne sont pas égaux.

    if(time1 == time2){ System.out.println("les dates sont égales"); } else{ System.out.println("les dates ne sont pas égales"); //s'imprimera depuis time1 != time2 }

Conseillé: