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

Merkkijono- ja aikamoduulit
Kalenterimoduuli

Tavoite

Tarkista kalenteri ja aseta päivämäärät joillekin toimitusaikatauluille käyttämällä Calendar-moduulia.

On olemassa useita lähetyksiä, jotka ovat saapuneet, ja aikatauluja, jotka pitää täyttää, jotta ne voidaan jakaa uuden maatilan rakentamisen yhteydessä. Aiemmin käytimme date-moduulia lähetysmerkintöjen määrittämiseen, mutta nyt asetamme aikataulut käyttämällä calendar-moduulia. Jotta voit hyödyntää moduulin luokkia ja funktioita, käytä import calendar tuodaksesi kaikki asiaankuuluvat materiaalit.

Tarkoituksiimme käytämme seuraavia calendar-moduulin funktioita:

  • calendar.calendar(): Näyttää koko vuoden kalenterin, ottaa yhden (1) argumentin, joka on haluamasi vuosi.
  • calendar.month(): Näyttää kalenterin yhdelle kuukaudelle, ottaa kaksi (2) argumenttia, vuoden ja kuukauden.
  • calendar.isleap(): Tarkistaa, onko vuosi karkausvuosi, ottaa yhden (1) argumentin, jota tarkastellaan.
  • calendar.leapdays(): Tarkistaa vuosien välillä kertyneiden karkauspäivien määrän, ottaa kaksi (2) argumenttia, jotka ovat tarkasteltavan ajanjakson vuosiluvut.
  • itermonthdays(): Käyttää Calendar()-luokkaa, käy läpi kaikki kuukauden päivät, ottaa kaksi argumenttia, vuoden ja kuukauden.
  • itermonthdates(): Käyttää Calendar()-luokkaa, käy läpi kaikki kuukauden päivämäärät, ottaa kaksi argumenttia, vuoden ja kuukauden.
  • monthdayscalendar(): Käyttää Calendar()-luokkaa, käy läpi kaikki kuukauden viikot, ottaa kaksi argumenttia, vuoden ja kuukauden. Tallentaa tiedot sisäkkäiseen listaan.
  • monthdays2calendar(): Sama kuin edellinen funktio, mutta tallentaa viikot ja päivät yhdessä kaksiulotteiseen listaan.

Aloittaaksesi, kävele kullan X-merkin luo ja tarkista kalenteri. Luo muuttuja nimeltä cal ja tallenna siihen calendar.calendar()-funktion arvo lisäämällä argumenttina vuosi 2026, näin: cal = calendar.calendar(2026). Käytä display()-funktiota näyttääksesi juuri luomasi cal-muuttujan.

Kalenterin tarkistamisen ja näyttämisen jälkeen siirry valkoisen X-merkin luo ja tarkista pöydällä oleva laskentataulukko. Käytä read()-funktiota lukeaksesi muistion toimituskuukauden aikataulusta. Luo kaksi muuttujaa, yksi nimeltä year ja toinen nimeltä month, ja täytä ne lukemallasi tiedolla.

Luo muuttuja nimeltä calendar_month ja tallenna siihen calendar.month()-funktion arvo käyttäen year- ja month-muuttujia argumentteina. Käytä display()-funktiota näyttääksesi kalenterikuukauden, jota käytetään jakeluaikataulujen asettamiseen.

Kävele tumman X-merkin luo vihreän maton yli. Tässä kirjoitamme ylös joitakin datapisteitä varmistaaksemme, etteivät aikataulut poikkea toisistaan. Luo kaksi muuttujaa, yksi nimeltä leap_year ja toinen nimeltä leap_days. Muuttujaan leap_year tallenna calendar.isleap()-funktion tulos ja aseta argumenttina 2026. Tällä varmistetaan, onko nykyinen projektivuosi karkausvuosi. Muuttujaan leap_days tallenna calendar.leapdays()-funktion arvo ja lisää argumentteina arvot 2020 ja 2027. Tämä varmistaa, kuinka monta karkauspäivää on kertynyt koko projektin ajan. Käytä etukäteen kirjoitettua write()-funktiota ja lisää leap_year sekä leap_days tietojen kirjaamiseksi.

Kävele tumman X-merkin luo punaisen maton yli ja kohtaa pöytä. Tässä luonnostelemme kuukauden aikataulun. Luo muuttuja nimeltä date ja tallenna siihen calendar.Calendar() -funktion arvo, jolloin luodaan luokkaolio, jota voimme käyttää myöhemmin. Luo toinen muuttuja nimeltä day_roster ja anna sille tyhjä merkkijono, näin: day_roster = "".

Editorissa on ennakkoon kirjoitettu for-silmukka, joka käy läpi kalenteria ja luonnostelee päivämäärät. Käytä itermonthdays()-funktiota ja lisää siihen aiemmin luodut year- ja month-muuttujat argumentteina. Lisää tarvittavat puuttuvat osat saadaksesi rosterin kasaan.

for day in dates.itermonthdays(-insert value-, -insert value-): entry = "Day: %s \n" % (day) day_roster += entry

Kun silmukka on valmis, jatka luomalla identtinen silmukka, mutta korvaa itermonthdays()-funktio itermonthdates()-funktiolla ja lisää argumentteina year- ja month-muuttujat. Muuta entry-muuttuja tallentamaan tietoa näin: entry = "%s \n" % (day). Nämä antavat meille koko projektin kestoaikojen päivämäärät. Käytä etukäteen kirjoitettua display()-funktiota näyttämään day_roster-muuttujan sisältö, jotta saat projektin kaikkien päivien rosterin kalenterissa.

Kävele tumman X-merkin luo sinisen maton yli ja kohtaa muistion. Tässä asetamme projektin jälkiseurannan työviikkojen luettelon, jotka on listattu. Luo muuttuja nimeltä weeks ja tallenna siihen calendar.Calendar()-funktion arvo, jolloin luodaan luokkaolio, jota voimme käyttää funktioiden kanssa. Vaihda month-muuttujan arvoon 7 siirtääksesi käsiteltävää aikataulua eteenpäin, näin: month = 7.

Luo muuttuja nimeltä week_roster ja anna sille tyhjä merkkijono, näin: week_roster = "". Editorissa on ennakkoon kirjoitettu for-silmukka, joka käy läpi kalenteria ja luonnostelee viikonpäivät. Käytä monthdayscalendar()-funktiota ja lisää siihen aiemmin luodut year- ja month-muuttujat argumentteina. Lisää tarvittavat puuttuvat osat saadaksesi rosterin kasaan.

for day in weeks.monthdayscalendar(-insert value-, -insert value-): entry = "%s \n" % (day) week_roster += entry

Kun silmukka on valmis, jatka luomalla identtinen silmukka, mutta korvaa monthdayscalendar()-funktio monthdays2calendar()-funktiolla ja lisää argumentteina year- ja month-muuttujat. Nämä antavat meille koko projektin kestoaikojen viikonpäivät. Käytä etukäteen kirjoitettua display()-funktiota näyttämään week_roster-muuttujan sisältö, jotta saat tason valmiiksi.

Koodikirja