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_daysen sla hierin de datum op zonder de tijd met behulp vandate()uit dered_datevariabele en converteer het metstr(), zoals:red_days = str(red_date.date()). Gebruik dewrite()functie om de kisten te labelen metred_days. -
Op de lichte X-markering, richt je op de kisten en maak een variabele genaamd
red_timeen sla hierin de tijd op zonder de datum met behulp vantime()uit dered_datevariabele en converteer het metstr(), zoals:red_time = str(red_date.time()). Gebruik dewrite()functie om de kisten te labelen metred_time. -
Op de donkere X-markering, richt je op de kisten en maak een variabele genaamd
red_timestampen sla hierin de timestamp op berekend uit dered_datevariabele, zoals:red_timestamp = red_date.timestamp(). Gebruik dewrite()functie om de kisten te labelen metred_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_weekdayen sla hierin de dag van de week op met behulp vanstrftime()uit deblue_datevariabele, zoals:blue_day = blue_date.strftime("%a"). Maak een andere variabele genaamdblue_dayen sla hierin de dag van de maand op met behulp vanstrftime()uit deblue_datevariabele. Maak nog een variabele genaamdblue_monthen sla hierin de maandnaam, volledig voluit geschreven, op met behulp vanstrftime()uit deblue_datevariabele. Voeg de variabelenblue_weekday,blue_dayenblue_monthin de vooraf geschrevenwrite()functie in. -
Op de lichte X-markering, richt je op de kisten en maak een variabele genaamd
blue_houren sla hierin het uur, twaalf-uurscyclus, op met behulp vanstrftime()uit deblue_datevariabele. Maak een andere variabele genaamdblue_minuteen sla hierin het minuut op met behulp vanstrftime()uit deblue_datevariabele. Maak nog een variabele genaamdblue_meridianen sla hierin de meridiaan, AM/PM, op met behulp vanstrftime()uit deblue_datevariabele. Voeg de variabelenblue_hour,blue_minuteenblue_meridianin de vooraf geschrevenwrite()functie in. -
Op de donkere X-markering, richt je op de kisten en maak een variabele genaamd
blue_local_dateen sla hierin het locale datumformaat op met behulp vanstrftime()uit deblue_datevariabele. Maak een andere variabele genaamdblue_local_timeen sla hierin het locale tijdformaat op met behulp vanstrftime()uit deblue_datevariabele. Voeg de variabelenblue_local_date,blue_local_timeenblue_meridianin de vooraf geschrevendisplay()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_dayen sla hierin de dag van het jaar op met behulp vanstrftime()uit degreen_datevariabele. Gebruik dewrite()functie om de kisten te labelen metgreen_day. -
Op de lichte X-markering, richt je op de kisten en maak een variabele genaamd
green_weeken sla hierin de week van het jaar op met behulp vanstrftime()uit degreen_datevariabele. Gebruik dewrite()functie om de kisten te labelen metgreen_week. -
Op de donkere X-markering, richt je op de kisten en maak een variabele genaamd
green_timezoneen sla hierin de UTC tijdzone op met behulp vanstrftime()uit degreen_datevariabele. Gebruik dewrite()functie om de kisten te labelen metgreen_timezone.
Zodra alle labels op de X-markeringen naast de gekleurde tapijten zijn genoteerd, is het niveau compleet.