Cours avancé de développement Python
Chapitre
>
Niveau
Modules de chaînes et de temps
Module Calendrier
Objectif
Consultez le calendrier et définissez des dates pour certaines échéances de livraison en utilisant le module Calendar.
Il y a plusieurs expéditions qui sont arrivées et des horaires à respecter afin qu'elles puissent être distribuées autour de la nouvelle construction de la ferme. Auparavant, nous utilisions le module date pour configurer les étiquettes d'expédition, ici nous allons définir les horaires en utilisant le module calendar. Pour pouvoir utiliser les classes et fonctions du module, utilisez import calendar pour importer tous les éléments pertinents.
Pour nos besoins, nous utiliserons les fonctions suivantes du module calendar :
calendar.calendar():Affiche le calendrier complet de l'année, prend un (1) argument, à savoir l'année que vous souhaitez afficher.calendar.month():Affiche un calendrier pour un mois donné, prend deux (2) arguments, l'année et le mois.calendar.isleap():Vérifie si une année est bissextile, prend un (1) argument, à savoir l'année à vérifier.calendar.leapdays():Vérifie le nombre de jours bissextiles accumulés sur les années, prend deux (2) arguments représentant les années couvrant la période que vous souhaitez vérifier.itermonthdays():Utilise la classeCalendar(), itère à travers tous les jours du mois, prend deux arguments, l'année et le mois.itermonthdates():Utilise la classeCalendar(), itère à travers toutes les dates du mois, prend deux arguments, l'année et le mois.monthdayscalendar():Utilise la classeCalendar(), itère à travers toutes les semaines du mois, prend deux arguments, l'année et le mois. Stocke les données dans une liste imbriquée.monthdays2calendar():Identique à la fonction précédente mais stocke les semaines et les jours ensemble dans une liste à deux dimensions.
Pour commencer, rendez-vous à la marque X dorée et consultez le calendrier, créez une variable nommée cal et stockez-y la valeur de calendar.calendar() en ajoutant l'année 2026 comme argument, comme ceci : cal = calendar.calendar(2026). Utilisez la fonction display() pour afficher la variable cal que vous venez de configurer.
Après avoir consulté et affiché le calendrier, dirigez-vous vers la marque X claire et vérifiez le tableau sur le bureau. Utilisez la fonction read() pour consulter la note concernant le mois prévu pour l'approvisionnement. Créez deux variables, une nommée year et une nommée month, et remplissez-les avec les informations que vous avez lues.
Créez une variable nommée calendar_month et stockez-y la valeur de la fonction calendar.month() en utilisant les variables year et month comme arguments. Utilisez la fonction display() pour afficher le mois du calendrier qui sera utilisé pour définir les horaires de distribution.
Dirigez-vous vers la marque X sombre sur le tapis vert, ici nous allons noter quelques points de données afin de s'assurer que les horaires ne sont pas décalés. Créez deux variables, une nommée leap_year et une nommée leap_days. Pour la variable leap_year, stockez le résultat de calendar.isleap() en définissant 2026 comme argument. Cela vous permettra de vérifier si l'année du projet en cours est bissextile. Pour la variable leap_days, stockez la valeur de calendar.leapdays() en ajoutant les valeurs 2020 et 2027 comme arguments. Ceci vérifie le nombre de jours bissextiles qui se sont accumulés pendant toute la durée du projet. Utilisez la fonction pré-écrite write() et ajoutez leap_year et leap_days pour consigner les données.
Dirigez-vous vers la marque X sombre sur le tapis rouge et faites face au bureau, ici nous allons définir le planning du mois. Créez une variable nommée date et stockez-y la valeur de calendar.Calendar(), ce qui crée un objet de classe que nous pourrons référencer ultérieurement. Créez une autre variable nommée day_roster et initialisez-la avec des guillemets vides, ce qui nous permettra de stocker la liste des jours dans une chaîne de caractères. Comme ceci : day_roster = "".
Dans l'éditeur, une boucle for est pré-écrite pour itérer à travers le calendrier et énoncer les dates. Utilisez la fonction itermonthdays() et ajoutez les variables year et month que vous avez créées précédemment en tant qu'arguments. Ajoutez les éléments manquants selon les besoins pour compléter le décompte du roster.
for day in dates.itermonthdays(-insert value-, -insert value-): entry = "Day: %s \n" % (day) day_roster += entry
Une fois la boucle mise en place, poursuivez en créant une copie de cette boucle en remplaçant toutefois la fonction itermonthdays() par itermonthdates() et en ajoutant les variables year et month en tant qu'arguments. Pour la variable entry, faites en sorte qu'elle enregistre les données comme ceci : entry = "%s \n" % (day). Cela nous donnera les dates complètes de la durée du projet. Utilisez la fonction pré-écrite display() avec la variable day_roster pour afficher l'ensemble de la liste des jours du projet dans le calendrier.
Dirigez-vous vers la marque X sombre sur le tapis bleu et faites face à la note, ici nous allons mettre en place le suivi des semaines de travail du projet cataloguées dans des listes. Créez une variable nommée weeks et stockez-y la valeur de calendar.Calendar(), ce qui crée un objet de classe que nous pourrons utiliser avec les fonctions. Remplacez la valeur de la variable month par 7 afin de faire monter le planning avec lequel nous travaillons, comme ceci : month = 7.
Créez une variable nommée week_roster et initialisez-la avec des guillemets vides, ce qui nous permettra de stocker la liste des semaines dans une chaîne de caractères. Comme ceci : week_roster = "". Dans l'éditeur, une boucle for est pré-écrite pour itérer à travers le calendrier et énumérer les jours de la semaine. Utilisez la fonction monthdayscalendar() et ajoutez les variables year et month que vous avez créées précédemment en tant qu'arguments. Ajoutez les éléments manquants selon les besoins pour compléter le décompte du roster.
for day in weeks.monthdayscalendar(-insert value-, -insert value-): entry = "%s \n" % (day) week_roster += entry
Une fois la boucle mise en place, poursuivez en créant une copie de cette boucle en remplaçant toutefois la fonction monthdayscalendar() par monthdays2calendar() et en ajoutant les variables year et month en tant qu'arguments. Cela nous donnera les dates complètes de la durée du projet. Utilisez la fonction pré-écrite display() avec la variable week_roster pour afficher l'ensemble de la liste des jours ouvrables du projet dans le calendrier afin de compléter le niveau.