Java:
Comparer deux dates

Comment faire :

import java.time.LocalDate;
import java.time.temporal.ChronoUnit;

public class DateComparison {
    public static void main(String[] args) {
        LocalDate date1 = LocalDate.of(2023, 4, 15);
        LocalDate date2 = LocalDate.of(2023, 5, 20);
        
        // Comparer en utilisant compareTo
        int comparison = date1.compareTo(date2);

        if(comparison > 0) {
            System.out.println("Date1 est après Date2");
        } else if (comparison < 0) {
            System.out.println("Date1 est avant Date2");
        } else {
            System.out.println("Les dates sont identiques");
        }

        // Calculer la différence entre les deux dates
        long daysBetween = ChronoUnit.DAYS.between(date1, date2);
        System.out.println("Il y a " + daysBetween + " jours de différence entre les deux dates.");
    }
}

Sortie d’échantillon :

Date1 est avant Date2
Il y a 35 jours de différence entre les deux dates.

Un peu plus en profondeur

Historiquement, Java utilisait Date et Calendar pour manipuler les dates, mais ces classes avaient des défauts de conception et d’utilisation. Depuis Java 8, le package java.time fournit une approche immuable et plus intuitive avec des classes comme LocalDate. Pour comparer des dates, on utilise compareTo ou les méthodes de ChronoUnit. Il existe aussi des méthodes comme isBefore et isAfter pour des vérifications plus directes. En plus, il y a equals pour tester l’équivalance.

Voir aussi