Attributs et méthodes
🎯 Objectif pédagogique
Les objectifs de cet exercice sont :
- Comprendre comment encapsuler des données et des méthodes dans une classe.
- Comprendre comment créer des instances de classe et interagir avec elles.
📜 Énoncé
Au lieu de représenter des dates avec des tuples, créez une classe Date
qui
encapsule les attributs et méthodes nécessaires pour manipuler des dates et
réécrivez l'exemple suivant :
date1 = (2025, 6, 13)
date2 = (2024, 12, 25)
def is_same_year(date_a, date_b):
return date_a[0] == date_b[0]
def format_date(date):
return f"{date[0]}-{date[1]}-{date[2]}"
def add_days(date, days):
year, month, day = date
return (year, month, day + days) # Valide ???
print(is_same_year(date1, date2)) # False
print(format_date(date1)) # 2025-6-13
print(format_date(date2)) # 2024-12-25
print(format_date(add_days(date1, 5))) # 2025-6-18
💪 Bonus
-
Corrigez le code de la fonction
add_days
pour qu'elle gère correctement le passage d'un mois à l'autre et les années bissextiles. -
Modifiez
format_date
pour qu'elle affiche les mois et les jours avec deux chiffres (01, 02, ..., 12).