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: Programmer en Java #05 : Ecrire Un premier programme java 2024, Peut
Anonim

Il existe de nombreuses façons de comparer deux dates dans le langage de programmation Java. Dans les ordinateurs, une date est représentée par un nombre (le type de données Long) en unités de temps, c'est-à-dire le nombre de millisecondes écoulées depuis le 1er janvier 1970. En Java, Date est un objet, ce qui signifie qu'il a plusieurs méthodes pour faire des comparaisons. Toute méthode utilisée pour comparer deux dates consiste essentiellement à comparer les unités de temps des deux dates.

Étape

Méthode 1 sur 4: Utilisation de compareTo

4301351 1
4301351 1

Étape 1. Utilisez compareTo

L'objet Date implémente Comparable afin que 2 dates puissent être comparées directement avec la méthode compareTo. Si les deux dates ont le même nombre en unités de temps, la méthode renvoie zéro. Si la deuxième date est inférieure à la première, une valeur inférieure à zéro est renvoyée. Si la deuxième date est supérieure à la première, la méthode renvoie une valeur supérieure à zéro. Si les deux dates sont identiques, la méthode renvoie une valeur nulle.

4301351 2
4301351 2

Étape 2. Créez plusieurs objets Date

Vous devez créer plusieurs objets Date avant de les comparer. L'un des moyens les plus simples de le faire est d'utiliser la classe SimpleDateFormat. Cette classe facilite la conversion d'une valeur de date d'entrée en un objet Date.

    SimpleDateFormat sdf = new SimpleDateFormat("aaaa-MM-jj"). Pour déclarer une valeur dans une nouvelle ''Object Date'', utilisez le même format de date lors de la création de la date. 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 Date

Le code suivant vous montrera des exemples pour chaque cas -- inférieur à, égal et supérieur à.

    date1.comparerÀ(date2); //date1 < date2, renvoie une valeur inférieure à 0 date2.compareTo(date1); //date2 > date1, renvoie une valeur supérieure à 0 date1.compareTo(date3); //date1 = date3, donc il 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 à l'aide des méthodes equals, after et before. Si deux dates ont la même valeur temporelle, la méthode equals renvoie true. L'exemple suivant utilisera l'objet Date créé dans l'exemple de méthode compareTo.

4301351 5
4301351 5

Étape 2. Comparez avec la méthode précédente

Le code suivant montre un exemple de cas qui renvoie true et false. Si date1 est une date antérieure à date2, la méthode before renvoie true. Sinon, la méthode before renvoie false.

    System.out.print(date1.before(date2)); // affiche la valeur ''true'' System.out.print(date2.before(date2)); // renvoie la valeur ''false''

4301351 6
4301351 6

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

Le code suivant montre un exemple de cas qui renvoie true et false. Si date2 est la date postérieure à date1, la méthode after renvoie true. Sinon, la méthode after renverra false.

    System.out.print(date2.after(date1)); // affiche la valeur ''true'' System.out.print(date1.after(date2)); // affiche la valeur ''false''

4301351 7
4301351 7

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

Le code suivant montre un exemple de cas qui renvoie true et false. Si les deux dates sont égales, la méthode equals renvoie true. Sinon, la méthode equals renvoie false.

    System.out.print(date1.equals(date3)); // affiche la valeur ''true'' System.out.print(date1.equals(date2)); // affiche la valeur ''false''

Méthode 3 sur 4: Utilisation du calendrier de classe

4301351 8
4301351 8

Étape 1. Utilisez le calendrier de la classe

La classe Calendar possède également des méthodes compareTo, equals, after et before qui fonctionnent de la même manière que celles décrites précédemment pour la classe Date. Ainsi, si les informations de date sont stockées dans un calendrier de classe, vous n'avez pas besoin d'extraire la date uniquement pour effectuer une comparaison.

4301351 9
4301351 9

Étape 2. Créez une instance de Calendar

Pour utiliser des méthodes dans Class Calendar, vous devez créer plusieurs instances Calendar. Heureusement, vous pouvez utiliser les valeurs d'une instance Date précédemment créée.

    Calendrier call1 = Calendar.getInstance(); //déclarer cal1 Calendrier cal2 = Calendrier.getInstance(); //déclarer cal2 Calendrier cal3 = Calendar.getInstance(); //déclarer cal3 cal1.setTime(date1); //mettre la date dans call1 cal2.setTime(date2); cal3.setTime(date3);

4301351 10
4301351 10

Étape 3. Comparez cal1 et cal2 à l'aide de la méthode avant

Le code suivant affichera la valeur de tr

    System.out.print(cal1.before(cal2)); // retournera la valeur ''true''

4301351 11
4301351 11

Étape 4. Comparez cal1 et cal2 à l'aide de la méthode après

Le code suivant renverra false car cal1 est la date avant cal2.

    System.out.print(cal1.after(cal2)); // renvoie la valeur ''false''

4301351 12
4301351 12

Étape 5. Comparez cal1 et cal2 en utilisant la méthode d'égalité

Le code suivant montrera un exemple de cas qui renvoie true et false. L'état dépend de l'instance Calendar comparée. Le code suivant renverra la valeur "true", puis "false" sur la ligne suivante.

    System.out.println(cal1.equals(cal3)); // renvoie la valeur ''true'': cal1 == cal3 System.out.print(cal1.equals(cal2)); // renvoie la valeur ''false'': cal1 != cal2

Méthode 4 sur 4: Utilisation de getTime

4301351 13
4301351 13

Étape 1. Utilisez getTime

Vous pouvez également comparer directement les valeurs d'unité de temps de deux dates, bien que les deux méthodes précédentes puissent être plus faciles à lire et préférables. De cette façon, vous comparerez 2 types de données primitifs, vous pouvez donc utiliser les opérandes "", et "==".

4301351 14
4301351 14

Étape 2. Créez un objet de temps au format de nombre long

Avant de pouvoir comparer des dates, vous devez créer une valeur Entier long à partir de l'objet Date précédemment créé. Heureusement, la méthode getTime() le fera pour vous.

    long time1 = getTime(date1); //déclarer la primitive time1 de date1 long time2 = getTime(date2); //déclare la valeur primitive time2 de date2

4301351 15
4301351 15

Étape 3. Effectuez une comparaison inférieure à

Utilisez l'opérande inférieur à (<) pour comparer ces deux valeurs entières. Puisque time1 est inférieur à time2, le premier message apparaîtra. L'instruction else est incluse pour compléter la syntaxe.

    if(time1 < time2){ System.out.println("date1 est la date avant date2"); //s'affichera car time1 < time2 } else{ System.out.println("date1 n'est pas une date antérieure à date2"); }

4301351 16
4301351 16

Étape 4. Effectuez une comparaison supérieure à

Utilisez l'opérande supérieur à (>) pour comparer ces deux valeurs entières. Parce que time1 est supérieur à time2, le premier message apparaîtra. L'instruction else est incluse pour compléter la syntaxe.

    if(time2 > time1){ System.out.println("date2 est la date après date1"); //s'affichera parce que time2 > time1 } else{ System.out.println("date2 n'est pas la date après date1"); }

4301351 17
4301351 17

Étape 5. Effectuez une comparaison d'égalité

Utilisez la fonction opérande pour vérifier l'égalité des valeurs (==) pour comparer ces deux entiers. Puisque time1 est égal à time3, le premier message apparaîtra. Si le flux du programme entre dans l'instruction else, cela signifie que les deux temps n'ont pas la même valeur.

    if(time1 == time2){ System.out.println("les deux dates sont les mêmes"); } else{ System.out.println("Le 1er n'est pas le même que le 2ème"); //s'affichera car time1 != time2 }

Conseillé: