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.