Cours avancé de développement Python
Chapitre
>
Niveau
Modules de chaînes et de temps
Module Date/Heure
Objectif
Ajuster les enregistrements et configurer les dates de livraison des fournitures en utilisant les fonctions du module Date & Time.
Le rez-de-chaussée de l'annexe de la nouvelle zone de construction est un entrepôt contenant certaines des fournitures récemment livrées qui ont été emballées et sont prêtes à être expédiées vers les zones autour de la nouvelle construction. Elles doivent être étiquetées avec leurs dates et heures correctes, et s'assurer que toutes les informations pertinentes figurent sur les étiquettes déjà apposées. Pour ce faire, nous pourrions prendre le temps d'écrire et formater manuellement les dates et l'heure, mais il existe une méthode beaucoup plus rapide en utilisant le module de date et d'heure.
Le module de date et d'heure est importé en écrivant import datetime, cela débloque une série de fonctions puissantes qui vous permettent de lire et définir des horaires et dates formatés que vous pouvez stocker dans des objets. Vous pouvez également utiliser : from datetime import timezone, timedelta afin de définir des fuseaux horaires. Les fonctions suivantes sont débloquées par l'importation du module :
datetime.datetime(): Permet de définir et de stocker une heure de votre choix, prend plusieurs arguments comme suit :year,month,day,hour,minute,second,microsecond,timezone. Vous n'êtes pas obligé de saisir tous les arguments, mais uniquement ceux que vous souhaitez utiliser.datetime.datetime.now(): Renvoie votre date et heure actuelles telles qu'elles apparaîtraient sur une horloge.datetime.datetime.date(): Renvoie uniquement la date du datetime, sans l'heure.datetime.datetime.time(): Renvoie uniquement l'heure du datetime, sans la date.datetime.datetime.timestamp(): Renvoie le timestamp du datetime sous forme d'un code UNIX.timezone(): Permet de définir un fuseau horaire pour utiliser vos arguments de dates et d'heures.datetime.strftime(): Permet d'extraire des informations spécifiques de la date et de l'heure et de les formater selon vos préférences en utilisant des codes spécifiques. Pour nos besoins, nous utiliserons les codes suivants :"%a": Jour de la semaine, abrégé"%d": Jour du mois"%B": Nom du mois, en toutes lettres"%I": Heure, cycle de douze heures"%M": Minute"%p": Médiam, AM/PM"%x": Format de date local"%X": Format d'heure local"%j": Jour de l'année"%U": Semaine de l'année"%z": Fuseau horaire UTC
Pour commencer, rendez-vous vers la marque X claire et faites face au bureau, utilisez la fonction read() pour vérifier les dates d'emballage des expéditions ainsi que les dates de début et de fin des projets. Prenez note des dates de début et de fin indiquées dans le document (mois/jour/année). Les trois (3) premiers points de données écrits dans le mémo ainsi que le fuseau horaire sont pré-écrits dans l'éditeur de code pour faciliter l'utilisation dans les fonctions ultérieures.
Dans cet espace, créez une variable nommée today et stockez-y la valeur renvoyée par datetime.datetime.now(). Utilisez str() pour convertir la valeur en chaîne de caractères afin qu'elle soit lisible, comme ceci : today = str(datetime.datetime.now()). Utilisez la fonction display() pour inscrire la date d'aujourd'hui dans le mémo, ainsi la date pour les allocations d'expédition est fixée et vous pouvez commencer à ajouter les points de données manquants aux zones nécessaires.
Rendez-vous ensuite vers la marque X dorée à côté du bureau et ici nous allons calculer et inscrire le nombre de jours que prendra ce projet. Il y a deux variables écrites dans l'éditeur nommées start et end qui stockent des datetime. Notez les dates de début et de fin que vous avez lues précédemment dans les espaces prévus. Créez une variable nommée result et stockez-y le résultat d'une soustraction entre les variables end et start. Utilisez la fonction str() pour convertir la valeur en une chaîne de caractères lisible, comme ceci : result = str(end-start). Utilisez la fonction write() pour inscrire la variable result, afin de noter la durée du projet.
À partir de là, nous allons nous rendre vers la marque X dorée à côté du tapis rouge et nous diriger vers les marques X situées à côté des caisses de tapis rouge dans la colonne de gauche. Ici, nous allons ajouter certaines parties spécifiques des dates d'emballage manquantes sur les caisses en utilisant datetime(). Dans l'éditeur, il y aura une date pré-écrite attribuée à la variable red_date, nous extrairons divers bouts de données et les utiliserons pour étiqueter les caisses.
Pour les tapis rouges :
-
À la marque X dorée, faites face aux caisses et créez une variable nommée
red_daysdans laquelle vous stockez la date sans l'heure en utilisantdate()à partir de la variablered_dateet convertissez-la en utilisantstr(), comme ceci :red_days = str(red_date.date()). Utilisez la fonctionwrite()pour étiqueter les caisses en utilisantred_days. -
À la marque X claire, faites face aux caisses et créez une variable nommée
red_timedans laquelle vous stockez l'heure sans la date en utilisanttime()à partir de la variablered_dateet convertissez-la en utilisantstr(), comme ceci :red_time = str(red_date.time()). Utilisez la fonctionwrite()pour étiqueter les caisses en utilisantred_time. -
À la marque X foncée, faites face aux caisses et créez une variable nommée
red_timestampdans laquelle vous stockez le timestamp calculé à partir de la variablered_date, comme ceci :red_timestamp = red_date.timestamp(). Utilisez la fonctionwrite()pour étiqueter les caisses en utilisantred_timestamp.
Ensuite, nous allons passer aux marques X situées devant les caisses sur tapis bleu. Comme auparavant, il y a une série de trois (3) marques X colorées, dans ce cas se référant à la variable pré-écrite blue_date pour compléter les étiquettes. Parcourez la colonne et utilisez la fonction strftime() pour ajouter les éléments manquants aux étiquettes d'expédition. Contrairement aux fonctions précédentes, celle-ci nécessite un code spécifique pour extraire et formater les éléments de la date cible. Par exemple, si nous voulons obtenir le jour de la semaine pour la variable blue_date, vous utiliserez le code "%a" avec la fonction strftime() comme ceci : blue_date.strftime("%a").
Pour les marques X à côté des caisses sur tapis bleu, utilisez la fonction strftime() avec le code spécifique requis. Consultez la liste de codes précédemment décrite en fonction des exigences. Pour les tapis bleus :
-
À la marque X dorée, faites face aux caisses et créez une variable nommée
blue_weekdaydans laquelle vous stockez le jour de la semaine en utilisantstrftime()à partir de la variableblue_datecomme ceci :blue_day = blue_date.strftime("%a"). Créez une autre variable nomméeblue_dayet stockez-y le jour du mois en utilisantstrftime()à partir de la variableblue_date. Créez une autre variable nomméeblue_monthet stockez-y le nom complet du mois, en utilisantstrftime()à partir de la variableblue_date. Insérez les variablesblue_weekday,blue_dayetblue_monthdans la fonctionwrite()pré-écrite. -
À la marque X claire, faites face aux caisses et créez une variable nommée
blue_hourdans laquelle vous stockez l’heure, cycle de douze heures, en utilisantstrftime()à partir de la variableblue_date. Créez une autre variable nomméeblue_minuteet stockez-y la minute en utilisantstrftime()à partir de la variableblue_date. Créez une autre variable nomméeblue_meridianet stockez-y le médiam, AM/PM, en utilisantstrftime()à partir de la variableblue_date. Insérez les variablesblue_hour,blue_minuteetblue_meridiandans la fonctionwrite()pré-écrite. -
À la marque X foncée, faites face aux caisses et créez une variable nommée
blue_local_datedans laquelle vous stockez le format de date local, en utilisantstrftime()à partir de la variableblue_date. Créez une autre variable nomméeblue_local_timeet stockez-y le format d'heure local en utilisantstrftime()à partir de la variableblue_date. Insérez les variablesblue_local_date,blue_local_timeetblue_meridiandans la fonctiondisplay()pré-écrite.
Enfin, nous allons passer à la marque X dorée à côté du tapis vert et descendre jusqu'aux marques X situées à côté des caisses sur tapis vert dans la colonne de droite. Ici, nous continuerons d'ajouter des parties spécifiques des dates d'emballage manquantes sur les caisses en utilisant strftime(). Dans l'éditeur, il y aura une date pré-écrite attribuée à la variable green_date, nous extrairons divers bouts de données et les utiliserons pour étiqueter les caisses.
Pour les tapis verts :
-
À la marque X dorée, faites face aux caisses et créez une variable nommée
green_daydans laquelle vous stockez le jour de l'année en utilisantstrftime()à partir de la variablegreen_date. Utilisez la fonctionwrite()pour étiqueter les caisses en utilisantgreen_day. -
À la marque X claire, faites face aux caisses et créez une variable nommée
green_weekdans laquelle vous stockez la semaine de l'année en utilisantstrftime()à partir de la variablegreen_date. Utilisez la fonctionwrite()pour étiqueter les caisses en utilisantgreen_week. -
À la marque X foncée, faites face aux caisses et créez une variable nommée
green_timezonedans laquelle vous stockez le fuseau horaire UTC en utilisantstrftime()à partir de la variablegreen_date. Utilisez la fonctionwrite()pour étiqueter les caisses en utilisantgreen_timezone.
Une fois que toutes les étiquettes sur les marques X à côté des tapis colorés auront été inscrites, le niveau sera terminé.