Coding for KidsCoding for Kids
Kreatív SzintekKihívásokTanári Útmutató
Szavazzon a funkciókra
Fejlett Python fejlesztési tanfolyam
Fejezet
>
Szint

Karakterlánc és idő modulok
Dátum/Idő modul

Cél

Állítsd be a feljegyzéseket, és állítsd be a szállítási dátumokat az ellátmányhoz a Date & Time modul függvényeinek használatával.

A new construction area melléképületének alsó emelete egy raktár, amely az újonnan érkezett, csomagolt és a környező építkezési területekre szállításra kész ellátmány egy részét tartalmazza. Meg kell címkézni őket a megfelelő dátumokkal és időpontokkal, valamint biztosítani kell, hogy minden már alkalmazott címke tartalmazza a szükséges információkat. Ehhez lehetséges, hogy kézzel írjuk fel és formázzuk a dátumokat és időpontokat, de létezik egy sokkal gyorsabb mód is a date and time modul használatával.

A date and time modult az alábbi módon importálhatod: import datetime, ez aktivál egy sor erőteljes függvényt, amelyek lehetővé teszik, hogy olvasd és beállítsd a formázott időpontokat és dátumokat, melyeket objektumokban tárolhatsz. Használhatod továbbá a from datetime import timezone, timedelta kifejezést is az időzónák beállításához. Az alábbi függvények válnak elérhetővé a modul importálásával:

  • datetime.datetime(): Lehetővé teszi, hogy beállítsd és eltárold a választott időpontot, több argumentumot vár, mint például: year, month, day, hour, minute, second, microsecond, timezone. Nem szükséges az összes argumentumot megadni, csak azokat, amelyeket használni szeretnél.
  • datetime.datetime.now(): Visszaadja az aktuális dátumodat és idődet, ahogy az egy órán megjelenne.
  • datetime.datetime.date(): Csak a dátumot adja vissza, az idő nélkül.
  • datetime.datetime.time(): Csak az időt adja vissza, a dátum nélkül.
  • datetime.datetime.timestamp(): A datetime objektum UNIX időbélyegét adja vissza.
  • timezone(): Lehetővé teszi, hogy beállíts egy időzónát a dátum és idő argumentumokhoz.
  • datetime.strftime(): Lehetővé teszi, hogy a dátum és idő egyes elemeit kivond és a kívánt formátumba alakítsd meghatározott kódok segítségével. A mi céljainkhoz az alábbi kódokat fogjuk használni:
    • "%a" : A hét napja, rövidített formában
    • "%d" : A hónap napja
    • "%B" : A hónap neve, teljes formában
    • "%I" : Óra, 12 órás ciklusban
    • "%M" : Perc
    • "%p" : Déli/idő jelölés, AM/PM
    • "%x" : Helyi dátumformátum
    • "%X" : Helyi időformátum
    • "%j" : Az év napja
    • "%U" : Az év hete
    • "%z" : UTC időzóna

Kezdésként sétálj a világos X jelhez és fordulj az asztal felé, majd használd a read() függvényt a csomagolási dátumok, illetve a projektek kezdő- és befejezési dátumainak ellenőrzésére. Jegyezd fel a dokumentumban szereplő kezdő és befejező dátumokat (hónap/nap/év formátumban). A memóban található három (3) első adatpont, valamint az időzóna előre meg van írva a kódszerkesztőben a későbbi függvények könnyebb használhatósága érdekében.

Ugyanebben a térben hozz létre egy today nevű változót, és tárold el benne a datetime.datetime.now() függvény visszatérési értékét. Használd a str() függvényt az érték stringgé alakításához, így: today = str(datetime.datetime.now()). Ezután használd a display() függvényt, hogy a memóban lejegyezd a mai dátumot, amivel beállítod a szállítási kiosztások dátumát, és elkezdheted a hiányzó adatpontok hozzáadását a szükséges helyeken.

Sétálj az arany X jelhez az asztal mellett, ahol kiszámoljuk és lejegyzzük, hogy hány napot vesz igénybe ez a projekt. Két változó, start és end, már előre meg van írva a szerkesztőben, és datetime értékeket tárolnak. Írd be a korábban olvasott kezdő és befejező dátumokat a megadott helyekre. Hozz létre egy result nevű változót, és tárold el benne az end és start változók kivonásának eredményét. Használd a str() függvényt az érték olvasható string formátumba alakításához, így: result = str(end-start). Ezután a write() függvénnyel lejegyezzük a result változót, ezzel jelölve, hogy mennyi ideig tart a projekt.

Innen továbblépünk az arany X jelhez a vörös szőnyeg mellett, majd lefelé lépünk a bal oldali oszlopban lévő, vörös szőnyeg dobozok melletti X jelekhez. Itt a csomagolási dátum hiányzó részeit fogjuk pótolni a dobozokon a datetime() használatával. A szerkesztőben előre megírt dátum van hozzárendelve a red_date változóhoz, amelyből különböző adatrekordokat vonunk ki a dobozok címkézéséhez.

A vörös szőnyegek esetében:

  • Az arany X jelnél, fordulj a dobozok felé, és hozz létre egy red_days nevű változót, amelyben tárold el a dátumot idő nélkül a red_date változó date() metódusának segítségével, majd alakítsd stringgé a str() segítségével, így: red_days = str(red_date.date()). Használd a write() függvényt, hogy a red_days értékével címkézd a dobozokat.

  • A világos X jelnél, fordulj a dobozok felé, és hozz létre egy red_time nevű változót, amelyben tárold el az időt dátum nélkül a red_date változó time() metódusának segítségével, majd alakítsd stringgé a str() segítségével, így: red_time = str(red_date.time()). Használd a write() függvényt, hogy a red_time értékével címkézd a dobozokat.

  • A sötét X jelnél, fordulj a dobozok felé, és hozz létre egy red_timestamp nevű változót, amelyben tárold el az időbélyeget, amely a red_date változóból származik, így: red_timestamp = red_date.timestamp(). Használd a write() függvényt, hogy a red_timestamp értékével címkézd a dobozokat.

Ezután lépjünk a kék szőnyeg dobozok előtti X jelekhez. Ahogy korábban, itt is három (3) színes X jel sorozata következik, ebben az esetben az előre megírt blue_date változóra hivatkozva a címkék kiegészítéséhez. Menj végig az oszlopon, és használd a strftime() függvényt, hogy hozzáadd a hiányzó elemeket a szállítási címkékhez. Ellentétben az előző függvényekkel, ez a módszer speciális kódot igényel az elemek kinyeréséhez és formázásához a céldátumból. Például, ha a blue_date változóból a hét napját szeretnénk kinyerni, a strftime() függvénnyel a következő kódot használod: "%a", így: blue_date.strftime("%a").

A kék szőnyeg dobozok melletti X jelek esetében használd a strftime() függvényt a szükséges kódokkal. Nézd át az előzőleg felsorolt kódlistát a követelmények alapján. A kék szőnyegek esetében:

  • Az arany X jelnél, fordulj a dobozok felé, és hozz létre egy blue_weekday nevű változót, amelyben tárold el a hét napját a strftime() segítségével a blue_date változóból, például így: blue_day = blue_date.strftime("%a"). Hozz létre egy másik blue_day nevű változót, és tárold el benne a hónap napját a strftime() segítségével a blue_date változóból. Hozz létre egy blue_month nevű változót, és tárold el benne a hónap teljes nevét a strftime() használatával a blue_date változóból. Illeszd be a blue_weekday, blue_day és blue_month változókat az előre megírt write() függvényhívásba.

  • A világos X jelnél, fordulj a dobozok felé, és hozz létre egy blue_hour nevű változót, amelyben tárold el az órát, 12 órás ciklusban, a strftime() segítségével a blue_date változóból. Hozz létre egy blue_minute nevű változót, és tárold el benne a percet a strftime() segítségével a blue_date változóból. Hozz létre egy blue_meridian nevű változót, és tárold el benne a déli/idő jelölést, AM/PM értékét a strftime() segítségével a blue_date változóból. Illeszd be a blue_hour, blue_minute és blue_meridian változókat az előre megírt write() függvényhívásba.

  • A sötét X jelnél, fordulj a dobozok felé, és hozz létre egy blue_local_date nevű változót, amelyben tárold el a helyi dátumformátumot, a strftime() segítségével a blue_date változóból. Hozz létre egy blue_local_time nevű változót, és tárold el benne a helyi időformátumot, a strftime() segítségével a blue_date változóból. Illeszd be a blue_local_date, blue_local_time és blue_meridian változókat az előre megírt display() függvényhívásba.

Végül áttérünk az arany X jelhez a zöld szőnyeg mellett, majd lefelé lépünk a jobb oldali oszlopban lévő zöld szőnyeg dobozok melletti X jelekhez. Itt folytatjuk a csomagolási dátum hiányzó részeinek hozzáadását a strftime() segítségével. A szerkesztőben előre megírt dátum van hozzárendelve a green_date változóhoz, amelyből különféle adatdarabokat vonunk ki a dobozok címkézéséhez.

A zöld szőnyegek esetében:

  • Az arany X jelnél, fordulj a dobozok felé, és hozz létre egy green_day nevű változót, amelyben tárold el az év napját a strftime() segítségével a green_date változóból. Használd a write() függvényt, hogy a green_day értékével címkézd a dobozokat.

  • A világos X jelnél, fordulj a dobozok felé, és hozz létre egy green_week nevű változót, amelyben tárold el az év hetének számát a strftime() segítségével a green_date változóból. Használd a write() függvényt, hogy a green_week értékével címkézd a dobozokat.

  • A sötét X jelnél, fordulj a dobozok felé, és hozz létre egy green_timezone nevű változót, amelyben tárold el a UTC időzónát a strftime() segítségével a green_date változóból. Használd a write() függvényt, hogy a green_timezone értékével címkézd a dobozokat.

Miután minden címkét lejegyeztünk az X jelek mellett a színes szőnyegek mentén, a szint elkészül.

Kódkönyv