# Home & Garden >> Maison & Jardin >  >> Home Design & Decor >> Décoration de Vacances

Comment rédiger un programme d'anniversaire en Python

Créer un programme d'anniversaire en Python est un projet idéal pour se familiariser avec la manipulation des dates et les interactions utilisateur. Dans cet article, nous allons construire pas à pas un script qui calcule le nombre de jours restants avant votre anniversaire, puis nous verrons comment enrichir votre programme avec des fonctionnalités plus avancées.

Prérequis

Pour suivre ce tutoriel, vous aurez simplement besoin de :

  • Python 3 installé sur votre ordinateur (téléchargeable gratuitement sur python.org) ;
  • un éditeur de texte ou un environnement de développement comme VS Code ;
  • des connaissances de base en Python (variables, fonctions, modules).

Le script de base : compter les jours avant l'anniversaire

Voici un programme complet et fonctionnel. Copiez-le dans un fichier nommé anniversaire.py :

import datetime

# Obtenir la date du jour
aujourdhui = datetime.date.today()

# Demander la date d'anniversaire à l'utilisateur
saisie = input("Quelle est votre date d'anniversaire ? (JJ/MM) : ")

# Convertir la saisie en objet date
anniversaire = datetime.datetime.strptime(saisie, "%d/%m").date()
anniversaire = anniversaire.replace(year=aujourdhui.year)

# Si l'anniversaire est déjà passé cette année, viser l'année suivante
if anniversaire < aujourdhui:
    anniversaire = anniversaire.replace(year=aujourdhui.year + 1)

# Calculer le nombre de jours restants
jours_restants = (anniversaire - aujourdhui).days

# Afficher le résultat
print(f"Il vous reste {jours_restants} jour(s) avant votre anniversaire !")

Explication du code étape par étape

1. Importation du module datetime

Le module datetime fait partie de la bibliothèque standard de Python. Il fournit tous les outils nécessaires pour travailler avec les dates, sans avoir à installer de dépendance supplémentaire.

2. Récupération de la date actuelle

La méthode datetime.date.today() renvoie la date du jour sous forme d'objet date, ce qui permettra ensuite d'effectuer des calculs directement entre les deux dates.

3. Saisie et conversion de la date d'anniversaire

La fonction input() recueille la date saisie par l'utilisateur au format JJ/MM, le format couramment utilisé en France. La méthode strptime() convertit ensuite cette chaîne de caractères en véritable objet date exploitable par le programme.

4. Gestion du cas où l'anniversaire est déjà passé

C'est une amélioration essentielle : si votre anniversaire est déjà passé cette année, le programme calcule automatiquement le décompte jusqu'à l'année suivante, évitant ainsi un résultat négatif ou erroné.

5. Calcul et affichage du résultat

La soustraction de deux objets date renvoie un objet timedelta, dont l'attribut .days donne directement le nombre de jours restants, affiché grâce à une f-string.

Ajouter des fonctionnalités avancées

Une fois le script de base maîtrisé, vous pouvez l'enrichir de plusieurs façons :

  • Envoyer un message de vœux : utilisez le module smtplib pour envoyer automatiquement un e-mail de félicitations le grand jour ;
  • Jouer une musique : les bibliothèques playsound ou pygame permettent de diffuser une chanson d'anniversaire ;
  • Afficher des notifications : associez le script au module plyer pour recevoir une alerte directement sur votre bureau ;
  • Créer une interface graphique : le module tkinter, inclus dans Python, vous permettra de concevoir une fenêtre conviviale plutôt qu'un simple terminal ;
  • Gérer plusieurs personnes : stockez les anniversaires dans un fichier CSV ou une base de données SQLite pour ne manquer aucun événement important.

Conclusion

Ce petit programme d'anniversaire constitue une excellente porte d'entrée vers la programmation Python : il combine saisie utilisateur, manipulation de dates et logique conditionnelle. N'hésitez pas à expérimenter avec les modules supplémentaires pour transformer ce simple compte à rebours en véritable assistant de rappel d'événements !


Source : https://jardin.98905.com/home-design-decor/holidays-decorating/1007135634.html
Droits d'auteur © Maison & Jardin Tous droits réservés.