diff --git a/DEV.2.1/TP/TP4-ClassesetObjet/Date.java b/DEV.2.1/TP/TP4-ClassesetObjet/Date.java new file mode 100644 index 0000000..8466cc4 --- /dev/null +++ b/DEV.2.1/TP/TP4-ClassesetObjet/Date.java @@ -0,0 +1,20 @@ +public class Date { + private int annee; + private int mois; + private int jour; + + public Date(int annee, int mois, int jour) { + this.annee = annee; + this.mois = mois; + this.jour = jour; + } + + public String toString() { + return String.format("%04d-%02d-%02d", annee, mois, jour); + } + + public static void main(String[] args) { + Date date = new Date(2024, 2, 3); // Exemple de date + System.out.println(date); + } +} diff --git a/DEV.2.1/TP/TP4-ClassesetObjet/Lendemain.java b/DEV.2.1/TP/TP4-ClassesetObjet/Lendemain.java new file mode 100644 index 0000000..58d3465 --- /dev/null +++ b/DEV.2.1/TP/TP4-ClassesetObjet/Lendemain.java @@ -0,0 +1,63 @@ +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) + } +} diff --git a/DEV.2.1/TP/TP4-ClassesetObjet/Progression.java b/DEV.2.1/TP/TP4-ClassesetObjet/Progression.java new file mode 100644 index 0000000..e6e8399 --- /dev/null +++ b/DEV.2.1/TP/TP4-ClassesetObjet/Progression.java @@ -0,0 +1,25 @@ +public class Progression { + + private int compte; + + public void plusUn() { + this.compte++; + } + + public String toString() { + return Integer.toBinaryString(this.compte); + } + + public Progression(int valeur_debut) { + this.compte = valeur_debut; + } + + public static void main(String[] args) { + Progression compteur = new Progression(5); + + for (int i = 5; i <= 9; i++){ + System.out.println(compteur); + compteur.plusUn(); + } + } +} \ No newline at end of file