Coding for KidsCoding for Kids
Creatieve LevelsUitdagingenLerarengids
Stem op functies
Gevorderde Python-ontwikkelingscursus
Hoofdstuk
>
Niveau

String- en Tijdmodules
Datum/Tijdmodule

Doel

Pas records aan en stel verzenddata in voor voorraden met behulp van functies van het Date & Time-module.

De begane grond van de aanbouw van het nieuwe bouwgebied is een magazijn dat enkele van de recent geleverde voorraden bevat, die zijn verpakt en klaar om te verzenden naar gebieden rond de nieuwe bouw. Ze moeten worden gelabeld met hun correcte datum en tijd, en ervoor zorgen dat alle reeds aangebrachte labels alle relevante informatie bevatten. Hiervoor zouden we de tijd kunnen nemen om handmatig data en tijden te schrijven en te formatteren, maar er is een veel snellere manier om dit te doen door het gebruik van het date and time module.

Het date and time module wordt geïmporteerd door import datetime te schrijven, dit ontsluit een reeks krachtige functies die je in staat stellen om geformatteerde tijden en data te lezen en in te stellen, welke je kunt opslaan in objecten. Je kunt ook gebruiken: from datetime import timezone, timedelta om tijdzones in te stellen. De volgende functies worden ontgrendeld door het importeren van de module:

  • datetime.datetime(): Hiermee kun je een door jou gekozen tijd instellen en opslaan, neemt verschillende argumenten als volgt: year, month, day, hour, minute, second, microsecond, timezone. Je hoeft niet alle argumenten in te voeren, maar slechts degene die je wilt gebruiken.
  • datetime.datetime.now(): Geeft je huidige datum en tijd terug zoals die op een klok zou verschijnen.
  • datetime.datetime.date(): Geeft alleen de datum van de datetime terug, zonder tijd.
  • datetime.datetime.time(): Geeft alleen de tijd van de datetime terug, zonder datum.
  • datetime.datetime.timestamp(): Geeft de timestamp van de datetime terug als een UNIX-code.
  • timezone(): Hiermee kun je een tijdzone instellen voor gebruik met je datum- en tijdargumenten.
  • datetime.strftime(): Hiermee kun je specifieke informatie uit datum en tijd halen en naar wens formatteren met behulp van specifieke codes. Voor onze doeleinden zullen we de volgende codes gebruiken:
    • "%a" : Weekdag, afgekort
    • "%d" : Dag van de maand
    • "%B" : Maandnaam, volledig voluit geschreven
    • "%I" : Uur, twaalf-uurscyclus
    • "%M" : Minuut
    • "%p" : Meridiaan, AM/PM
    • "%x" : Locale datumformaat
    • "%X" : Locale tijdformaat
    • "%j" : Dag van het jaar
    • "%U" : Week van het jaar
    • "%z" : UTC tijdzone

Loop eerst naar de lichte X-markering en richt je op het bureau, gebruik de read() functie om de verpakkingsdata voor de zendingen te controleren, evenals de start- en einddata voor de projecten. Noteer de start- en einddata zoals vermeld in het document (maand/dag/jaar). De eerste drie (3) datapunten die in de memo zijn geschreven en de tijdzone zijn vooraf geschreven in de code-editor om later gemakkelijk te gebruiken in functies.

Op dezezelfde plek maak je een variabele genaamd today en sla je de returnwaarde van datetime.datetime.now() op. Gebruik str() om de waarde om te zetten naar een string, zodat het leesbaar wordt, zoals: today = str(datetime.datetime.now()). Gebruik de display() functie om de datum van vandaag op de memo te noteren, hiermee is de datum voor de verzendtoewijzingen ingesteld en kun je beginnen met het toevoegen van ontbrekende datapunten aan de benodigde gebieden.

Loop naar de gouden X-markering naast het bureau; hier gaan we het aantal dagen berekenen en noteren dat dit project zal duren. Er zijn twee variabelen in de editor geschreven genaamd start en end die datetime opslaan. Schrijf de start- en einddata die je eerder hebt gelezen in de daarvoor bestemde ruimtes op. Maak een variabele genaamd result en sla hierin het resultaat op van een aftrekking tussen de variabelen end en start. Gebruik de str() functie om de waarde te converteren naar een leesbaar stringformaat, zoals: result = str(end-start). Gebruik de write() functie om de result variabele te noteren, om vast te leggen hoe lang dit zal duren.

Vanaf hier gaan we verder naar de gouden X-markering naast het rode tapijt en bewegen we ons naar de X-markeringen naast de rode tapijtkisten in de linker kolom. Hier zullen we specifieke delen van de verpakkingsdata toevoegen die ontbreken op de kisten met behulp van datetime(). In de editor staat er een vooraf geschreven datum toegewezen aan de variabele red_date, waaruit we verschillende stukjes data zullen extraheren en gebruiken om de kisten te labelen.

Voor de rode tapijten:

  • Op de gouden X-markering, richt je op de kisten en maak een variabele genaamd red_days en sla hierin de datum op zonder de tijd met behulp van date() uit de red_date variabele en converteer het met str(), zoals: red_days = str(red_date.date()). Gebruik de write() functie om de kisten te labelen met red_days.

  • Op de lichte X-markering, richt je op de kisten en maak een variabele genaamd red_time en sla hierin de tijd op zonder de datum met behulp van time() uit de red_date variabele en converteer het met str(), zoals: red_time = str(red_date.time()). Gebruik de write() functie om de kisten te labelen met red_time.

  • Op de donkere X-markering, richt je op de kisten en maak een variabele genaamd red_timestamp en sla hierin de timestamp op berekend uit de red_date variabele, zoals: red_timestamp = red_date.timestamp(). Gebruik de write() functie om de kisten te labelen met red_timestamp.

Ga daarna verder met de X-markeringen voor de blauwe tapijtkisten. Net als voorheen is er een reeks van drie (3) gekleurde X-markeringen, in dit geval verwijzend naar de vooraf geschreven blue_date variabele om de labels compleet te maken. Ga de kolom door en gebruik de strftime() functie om ontbrekende elementen aan de verzendlabels toe te voegen. In tegenstelling tot de voorgaande functies vereist deze een specifieke code om elementen in de doeldatum te extraheren en te formatteren. Bijvoorbeeld, als we de dag van de week voor de blue_date variabele willen krijgen, gebruik je de code "%a" met de strftime() functie zoals dit: blue_date.strftime("%a").

Voor de X-markeringen naast de blauwe tapijtkisten, gebruik de strftime() functie met de specifieke vereiste code. Kijk naar de eerder omschreven codelijst afhankelijk van de vereisten. Voor de blauwe tapijten:

  • Op de gouden X-markering, richt je op de kisten en maak een variabele genaamd blue_weekday en sla hierin de dag van de week op met behulp van strftime() uit de blue_date variabele, zoals: blue_day = blue_date.strftime("%a"). Maak een andere variabele genaamd blue_day en sla hierin de dag van de maand op met behulp van strftime() uit de blue_date variabele. Maak nog een variabele genaamd blue_month en sla hierin de maandnaam, volledig voluit geschreven, op met behulp van strftime() uit de blue_date variabele. Voeg de variabelen blue_weekday, blue_day en blue_month in de vooraf geschreven write() functie in.

  • Op de lichte X-markering, richt je op de kisten en maak een variabele genaamd blue_hour en sla hierin het uur, twaalf-uurscyclus, op met behulp van strftime() uit de blue_date variabele. Maak een andere variabele genaamd blue_minute en sla hierin het minuut op met behulp van strftime() uit de blue_date variabele. Maak nog een variabele genaamd blue_meridian en sla hierin de meridiaan, AM/PM, op met behulp van strftime() uit de blue_date variabele. Voeg de variabelen blue_hour, blue_minute en blue_meridian in de vooraf geschreven write() functie in.

  • Op de donkere X-markering, richt je op de kisten en maak een variabele genaamd blue_local_date en sla hierin het locale datumformaat op met behulp van strftime() uit de blue_date variabele. Maak een andere variabele genaamd blue_local_time en sla hierin het locale tijdformaat op met behulp van strftime() uit de blue_date variabele. Voeg de variabelen blue_local_date, blue_local_time en blue_meridian in de vooraf geschreven display() functie in.

Tot slot gaan we verder naar de gouden X-markering naast het groene tapijt en bewegen we ons naar de X-markeringen naast de groene tapijtkisten in de rechterkolom. Hier gaan we specifieke delen van de verpakkingsdata blijven toevoegen die ontbreken op de kisten met behulp van strftime(). In de editor staat er een vooraf geschreven datum toegewezen aan de variabele green_date, waaruit we verschillende stukjes data zullen extraheren en gebruiken om de kisten te labelen.

Voor de groene tapijten:

  • Op de gouden X-markering, richt je op de kisten en maak een variabele genaamd green_day en sla hierin de dag van het jaar op met behulp van strftime() uit de green_date variabele. Gebruik de write() functie om de kisten te labelen met green_day.

  • Op de lichte X-markering, richt je op de kisten en maak een variabele genaamd green_week en sla hierin de week van het jaar op met behulp van strftime() uit de green_date variabele. Gebruik de write() functie om de kisten te labelen met green_week.

  • Op de donkere X-markering, richt je op de kisten en maak een variabele genaamd green_timezone en sla hierin de UTC tijdzone op met behulp van strftime() uit de green_date variabele. Gebruik de write() functie om de kisten te labelen met green_timezone.

Zodra alle labels op de X-markeringen naast de gekleurde tapijten zijn genoteerd, is het niveau compleet.

Codeboek