Coding for KidsCoding for Kids
Luovat TasotHaasteetOpettajan Opas
Äänestä ominaisuuksia
Edistynyt Python-kehityskurssi
Luku
>
Taso

Merkkijono- ja aikamoduulit
Päiväys- ja aikamoduuli

Tavoite

Säädä tiedot ja määritä toimituspäivät tarvikkeille käyttämällä Date & Time -moduulin funktioita.

Uuden rakennusalueen liitännäistalon alekerroksessa on varasto, joka sisältää osan äskettäin toimitetuista tarvikkeista. Ne on pakattu ja ovat valmiina lähetettäväksi uusille rakennusalueen ympäröiviin alueisiin. Tarvikkeet tulee merkitä oikeilla päivämäärillä ja ajoilla sekä varmistaa, että jo kiinnitetyissä tarroissa on kaikki asiaankuuluvat tiedot. Tätä varten voisimme käyttää aikaa kirjoittamalla ja muotoilemalla päivämääriä ja aikoja manuaalisesti, mutta huomattavasti nopeampi tapa on käyttää date and time -moduulia.

Päiväys- ja aikamoduuli tuodaan kirjoittamalla import datetime. Tämä avaa käytettäväksi joukon tehokkaita funktioita, jotka mahdollistavat muotoiltujen aikojen ja päivämäärien lukemisen ja asettamisen, ja jotka voit tallentaa objekteihin. Voit myös käyttää: from datetime import timezone, timedelta asettaaksesi aikavyöhykkeitä. Seuraavat funktiot avautuvat moduulin tuonnin yhteydessä:

  • datetime.datetime(): Sallii asettaa ja tallentaa haluamasi ajan. Se ottaa useita argumentteja seuraavasti: year, month, day, hour, minute, second, microsecond, timezone. Kaikkia argumentteja ei tarvitse antaa, vaan vain niitä, joita haluat käyttää.
  • datetime.datetime.now(): Palauttaa nykyisen päivämäärän ja ajan, kuten kello näyttää.
  • datetime.datetime.date(): Palauttaa vain päivämäärän, ei aikaa.
  • datetime.datetime.time(): Palauttaa vain ajan, ei päivämäärää.
  • datetime.datetime.timestamp(): Palauttaa datetime-arvon aikaleiman UNIX-koodina.
  • timezone(): Sallii asettaa aikavyöhykkeen päivämäärä- ja aika-arvojen käyttöä varten.
  • datetime.strftime(): Sallii poimia tiettyjä osia päivämäärästä ja ajasta ja muotoilla ne haluamallasi tavalla käyttäen tiettyjä koodeja. Tarkoituksiimme käytämme seuraavia koodeja:
    • "%a" : Viikonpäivä, lyhennettynä
    • "%d" : Kuukauden päivä
    • "%B" : Kuukauden nimi, kokonaisena
    • "%I" : Tunti, kaksitoista tunnin sykli
    • "%M" : Minuutti
    • "%p" : Meridian, AM/PM
    • "%x" : Paikallinen päivämääräformaatti
    • "%X" : Paikallinen aikaformaatti
    • "%j" : Vuoden päivä
    • "%U" : Vuoden viikko
    • "%z" : UTC-aikavyöhyke

Aloita kävelemällä valoa edustavan X-merkin luokse ja käänny pöydän puoleen. Käytä read()-funktiota tarkistaaksesi pakkauspäivät toimituksille sekä projektien aloitus- ja lopetuspäivät. Merkitse muistiin dokumentissa annetut aloitus- ja lopetuspäivät (kuukausi/päivä/vuosi). Muistiinpanon kolme (3) ensimmäistä datapistettä sekä aikavyöhyke on valmiiksi kirjoitettu koodieditoriin myöhempää käyttöä varten.

Samassa paikassa luo muuttuja nimeltä today ja tallenna siihen datetime.datetime.now()-funktion palautusarvo. Käytä str()-funktiota muuntaaksesi arvon merkkijonoksi, jotta se on luettavassa muodossa, esimerkiksi näin: today = str(datetime.datetime.now()). Käytä display()-funktiota kirjataksesi tämän päivän päivämäärän muistiin; näin toimitusjakauman päivämäärä asetetaan ja voit alkaa lisätä puuttuvia datapisteitä tarvittaviin osioihin.

Kävele pöydän vieressä olevaan kultaisen X-merkin luokse, ja tässä lasketaan ja kirjataan, kuinka monta päivää tämä projekti kestää. Koodieditorissa on kaksi muuttujaa, nimeltään start ja end, jotka tallentavat datetime-arvoja. Kirjoita aiemmin lukemasi aloitus- ja loppupäivät annettuihin tiloihin. Luo muuttuja nimeltä result ja tallenna siihen end- ja start-muuttujien välinen erotus. Käytä str()-funktiota muuntaaksesi arvon luettavaksi merkkijonoksi, kuten näin: result = str(end-start). Käytä write()-funktiota kirjataksesi result-muuttujan, jolloin merkitään, kuinka kauan projekti kestää.

Siirry seuraavaksi kultaisen X-merkin luokse punaisen maton vieressä ja jatka alaosassa olevien X-merkkien kohdalle punaisen maton laatikoissa vasemmassa sarakkeessa. Tässä lisätään puuttuvia osia pakkauspäivämääristä laatikoihin käyttämällä datetime()-funktiota. Koodieditorissa on valmiiksi määritelty päivämäärä, joka on tallennettu muuttujaan red_date. Poimimme siitä erilaisia tietoja ja käytämme niitä laatikoiden merkintään.

Punaisille matoille:

  • Kultaisen X-merkin kohdalla, käänny laatikoiden puoleen ja luo muuttuja nimeltä red_days, johon tallennat päivämäärän ilman aikaa käyttämällä red_date-muuttujan date()-metodia ja muuntamalla sen str()-funktiolla, kuten näin: red_days = str(red_date.date()). Käytä write()-funktiota merkätäksesi laatikot käyttäen red_days-muuttujaa.

  • Kirkkaan X-merkin kohdalla, käänny laatikoiden puoleen ja luo muuttuja nimeltä red_time, johon tallennat ajan ilman päivämäärää käyttämällä red_date-muuttujan time()-metodia ja muuntamalla sen str()-funktiolla, kuten näin: red_time = str(red_date.time()). Käytä write()-funktiota merkätäksesi laatikot käyttäen red_time-muuttujaa.

  • Pimeän X-merkin kohdalla, käänny laatikoiden puoleen ja luo muuttuja nimeltä red_timestamp, johon tallennat red_date-muuttujasta lasketun aikaleiman, kuten näin: red_timestamp = red_date.timestamp(). Käytä write()-funktiota merkätäksesi laatikot käyttäen red_timestamp-muuttujaa.

Jatka siirtymällä sinisen maton laatikoiden edessä olevien X-merkkien kohdalle. Aivan kuten aiemmin, tässä on kolme (3) värillistä X-merkkiä, jotka viittaavat valmiiksi määriteltyyn blue_date-muuttujaan etikettien viimeistelyä varten. Käy läpi sarake ja käytä strftime()-funktiota lisätäksesi puuttuvia elementtejä toimitustarroihin. Toisin kuin edelliset funktiot, tämä vaatii tietyn koodin, jolla extraidaan ja muotoillaan kohdepäivämäärän elementtejä. Esimerkiksi, jos haluamme poimia viikonpäivän blue_date-muuttujalle, käytät koodia "%a" yhdessä strftime()-funktion kanssa näin: blue_date.strftime("%a").

Sinisille matoille:

  • Kultaisen X-merkin kohdalla, käänny laatikoiden puoleen ja luo muuttuja nimeltä blue_weekday, johon tallennat viikonpäivän käyttämällä strftime()-funktiota blue_date-muuttujasta, esimerkiksi näin: blue_day = blue_date.strftime("%a"). Luo toinen muuttuja nimeltä blue_day ja tallenna siihen kuukauden päivä käyttämällä strftime()-funktiota blue_date-muuttujasta. Luo vielä muuttuja nimeltä blue_month ja tallenna siihen kuukauden nimi, kokonaisena, käyttäen strftime()-funktiota blue_date-muuttujasta. Lisää blue_weekday-, blue_day- ja blue_month-muuttujat valmiiksi kirjoitettuun write()-funktioon.

  • Kirkkaan X-merkin kohdalla, käänny laatikoiden puoleen ja luo muuttuja nimeltä blue_hour, johon tallennat tunnin, kaksitoista tunnin sykli käyttämällä strftime()-funktiota blue_date-muuttujasta. Luo toinen muuttuja nimeltä blue_minute ja tallenna siihen minuutti käyttäen strftime()-funktiota blue_date-muuttujasta. Luo vielä muuttuja nimeltä blue_meridian ja tallenna siihen Meridian, AM/PM käyttäen strftime()-funktiota blue_date-muuttujasta. Lisää blue_hour-, blue_minute- ja blue_meridian-muuttujat valmiiksi kirjoitettuun write()-funktioon.

  • Pimeän X-merkin kohdalla, käänny laatikoiden puoleen ja luo muuttuja nimeltä blue_local_date, johon tallennat paikallisen päivämäärämuodon käyttämällä strftime()-funktiota blue_date-muuttujasta. Luo toinen muuttuja nimeltä blue_local_time ja tallenna siihen paikallinen aikaformaatti käyttäen strftime()-funktiota blue_date-muuttujasta. Lisää blue_local_date-, blue_local_time- ja blue_meridian-muuttujat valmiiksi kirjoitettuun display()-funktioon.

Lopuksi siirrymme vihreän maton vieressä olevan kultaisen X-merkin kohdalle ja jatkamme X-merkkien pariin vihreän maton laatikoiden oikeassa sarakkeessa. Tässä jatkamme puuttuvien osien lisäämistä pakkauspäivämääristä laatikoihin käyttämällä strftime()-funktiota. Koodieditorissa on valmiiksi määritelty päivämäärä, joka on tallennettu muuttujaan green_date. Poimimme siitä erilaisia tietoja ja käytämme niitä laatikoiden merkintään.

Vihreille matoille:

  • Kultaisen X-merkin kohdalla, käänny laatikoiden puoleen ja luo muuttuja nimeltä green_day, johon tallennat vuoden päivän käyttämällä strftime()-funktiota green_date-muuttujasta. Käytä write()-funktiota merkätäksesi laatikot käyttäen green_day-muuttujaa.

  • Kirkkaan X-merkin kohdalla, käänny laatikoiden puoleen ja luo muuttuja nimeltä green_week, johon tallennat vuoden viikon käyttäen strftime()-funktiota green_date-muuttujasta. Käytä write()-funktiota merkätäksesi laatikot käyttäen green_week-muuttujaa.

  • Pimeän X-merkin kohdalla, käänny laatikoiden puoleen ja luo muuttuja nimeltä green_timezone, johon tallennat UTC-aikavyöhykkeen käyttämällä strftime()-funktiota green_date-muuttujasta. Käytä write()-funktiota merkätäksesi laatikot käyttäen green_timezone-muuttujaa.

Kun kaikki värillisten mattojen vieressä olevat X-merkit on kirjattu, taso on valmis.

Koodikirja