DEV/BUT1/DEV2.1/TP4-ClassesEtObjets/EXO2 et 3/Partie2/Date.java

99 lines
2.8 KiB
Java
Raw Normal View History

2024-02-18 15:18:07 +01:00
public class Date{
// Attribut
private int jour;
private int mois;
private int annee;
// Constructeur
public Date(int jour, int mois, int annee){
this.jour = jour;
this.mois = mois;
this.annee = annee;
}
// Méthode pour afficher la date
public String toString() {
return String.format("%d/%02d/%02d", this.annee, this.mois, this.jour); // Format ISO 8601 = AAAA/MM/JJ;
}
// Méthode pour donner le lendemain d'une date
public Date lendemain() {
int jourLendemain = this.jour;
int moisLendemain = this.mois;
int anneeLendemain = this.annee;
if(this.mois == 1 || this.mois == 3 || this.mois == 5 || this.mois == 7 || this.mois == 8 || this.mois == 10 || this.mois == 12){
if (this.jour == 31) {
jourLendemain = 1;
if (this.mois == 12) {
moisLendemain = 1;
anneeLendemain += 1;
} else {
moisLendemain += 1;
}
} else {
jourLendemain += 1;
}
}else{
if (this.jour == 30) {
jourLendemain = 1;
if (this.mois == 12) {
moisLendemain = 1;
anneeLendemain += 1;
} else {
moisLendemain += 1;
}
} else {
jourLendemain += 1;
}
}
return new Date(jourLendemain, moisLendemain, anneeLendemain);
}
public Date comparerDate(Date date1, Date date2){
// Si l'année de la date 1 est plus grande que l'année de la date 2
if(date1.annee > date2.annee){
return date1;
}
// Si l'année de la date 2 est plus grande que l'année de la date 1
if(date1.annee < date2.annee){
return date2;
}
// Si l'année de la date 1 est égale à l'année de la date 2 = on ne peut pas se fier à l'année et on passe aux mois
if(date1.annee == date2.annee){
if(date1.mois > date2.mois){
return date1;
}
if(date1.mois < date2.mois){
return date2;
}
if(date1.mois == date2.mois){
if(date1.jour > date2.jour){
return date1;
}
if(date1.jour < date2.jour){
return date2;
}
}
}
return null;
}
public static void main(String[] args) {
Date date = new Date(31,12,2024);
Date dateLendemain = date.lendemain();
System.out.println("Aujourd'hui : " + date);
System.out.println("Demain : " + dateLendemain);
System.out.println(date.comparerDate(date,dateLendemain));
}
}