Coding for KidsCoding for Kids
Niveaux CréatifsDéfisGuide de l'Enseignant
Voter pour les fonctionnalités
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_days dans laquelle vous stockez la date sans l'heure en utilisant date() à partir de la variable red_date et convertissez-la en utilisant str(), comme ceci : red_days = str(red_date.date()). Utilisez la fonction write() pour étiqueter les caisses en utilisant red_days.

  • À la marque X claire, faites face aux caisses et créez une variable nommée red_time dans laquelle vous stockez l'heure sans la date en utilisant time() à partir de la variable red_date et convertissez-la en utilisant str(), comme ceci : red_time = str(red_date.time()). Utilisez la fonction write() pour étiqueter les caisses en utilisant red_time.

  • À la marque X foncée, faites face aux caisses et créez une variable nommée red_timestamp dans laquelle vous stockez le timestamp calculé à partir de la variable red_date, comme ceci : red_timestamp = red_date.timestamp(). Utilisez la fonction write() pour étiqueter les caisses en utilisant red_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_weekday dans laquelle vous stockez le jour de la semaine en utilisant strftime() à partir de la variable blue_date comme ceci : blue_day = blue_date.strftime("%a"). Créez une autre variable nommée blue_day et stockez-y le jour du mois en utilisant strftime() à partir de la variable blue_date. Créez une autre variable nommée blue_month et stockez-y le nom complet du mois, en utilisant strftime() à partir de la variable blue_date. Insérez les variables blue_weekday, blue_day et blue_month dans la fonction write() pré-écrite.

  • À la marque X claire, faites face aux caisses et créez une variable nommée blue_hour dans laquelle vous stockez l’heure, cycle de douze heures, en utilisant strftime() à partir de la variable blue_date. Créez une autre variable nommée blue_minute et stockez-y la minute en utilisant strftime() à partir de la variable blue_date. Créez une autre variable nommée blue_meridian et stockez-y le médiam, AM/PM, en utilisant strftime() à partir de la variable blue_date. Insérez les variables blue_hour, blue_minute et blue_meridian dans la fonction write() pré-écrite.

  • À la marque X foncée, faites face aux caisses et créez une variable nommée blue_local_date dans laquelle vous stockez le format de date local, en utilisant strftime() à partir de la variable blue_date. Créez une autre variable nommée blue_local_time et stockez-y le format d'heure local en utilisant strftime() à partir de la variable blue_date. Insérez les variables blue_local_date, blue_local_time et blue_meridian dans la fonction display() 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_day dans laquelle vous stockez le jour de l'année en utilisant strftime() à partir de la variable green_date. Utilisez la fonction write() pour étiqueter les caisses en utilisant green_day.

  • À la marque X claire, faites face aux caisses et créez une variable nommée green_week dans laquelle vous stockez la semaine de l'année en utilisant strftime() à partir de la variable green_date. Utilisez la fonction write() pour étiqueter les caisses en utilisant green_week.

  • À la marque X foncée, faites face aux caisses et créez une variable nommée green_timezone dans laquelle vous stockez le fuseau horaire UTC en utilisant strftime() à partir de la variable green_date. Utilisez la fonction write() pour étiqueter les caisses en utilisant green_timezone.

Une fois que toutes les étiquettes sur les marques X à côté des tapis colorés auront été inscrites, le niveau sera terminé.

Livre de Code