public class Lendemain { private int annee; private int mois; private int jour; // Nombre de jours dans chaque mois (sans tenir compte des années bissextiles) private static final int[] JOURS_PAR_MOIS = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }; // Constructeur public Lendemain(int annee, int mois, int jour) { this.annee = annee; this.mois = mois; this.jour = jour; } // Méthode toString qui renvoie la date au format ISO 8601 public String toString() { return String.format("%04d-%02d-%02d", annee, mois, jour); } // Méthode qui renvoie le lendemain public Lendemain lendemain() { int newJour = this.jour + 1; int newMois = this.mois; int newAnnee = this.annee; if (newJour > JOURS_PAR_MOIS[this.mois - 1]) { // Si dépassement du dernier jour du mois newJour = 1; newMois++; if (newMois > 12) { // Si dépassement du mois de décembre newMois = 1; newAnnee++; } } return new Lendemain(newAnnee, newMois, newJour); } // Méthode qui compare deux dates : // Retourne -1 si this est avant autre, 0 si elles sont égales, 1 si this est après autre public int compare(Lendemain autre) { if (this.annee != autre.annee) { return Integer.compare(this.annee, autre.annee); } if (this.mois != autre.mois) { return Integer.compare(this.mois, autre.mois); } return Integer.compare(this.jour, autre.jour); } // Méthode principale pour tester public static void main(String[] args) { Lendemain date = new Lendemain(2024, 2, 28); Lendemain lendemain = date.lendemain(); System.out.println("Date actuelle : " + date); // Affichage : 2024-02-28 System.out.println("Lendemain : " + lendemain); // Affichage : 2024-03-01 // Test de la comparaison Lendemain autreDate = new Lendemain(2024, 3, 1); System.out.println("Comparaison : " + date.compare(autreDate)); // Affichage : -1 (car 28 février < 1 mars) } }