Fejlett Python fejlesztési tanfolyam
Fejezet
>
Szint
String és Idő modulok
Naptár modul
Célkitűzés
Ellenőrizze a naptárat, és állítson be dátumokat néhány szállítási határidőhöz a Calendar modul segítségével.
Számos szállítmány érkezett, és olyan ütemterveknek kell megfelelni, hogy azok eloszthatók legyenek az új gazdaság építése körül. Korábban a date modul segítségével állítottuk be a szállítási címkéket, itt a calendar modul segítségével fogunk ütemterveket beállítani. Annak érdekében, hogy használni tudjuk a modul osztályait és függvényeit, használja az import calendar parancsot az összes releváns anyag importálásához.
Számunkra a következő calendar modul függvényeket fogjuk használni:
calendar.calendar():Megjeleníti az adott év teljes naptárát, egy (1) argumentumot vár, amely az a év, melyet meg szeretne jeleníteni.calendar.month():Megjeleníti egy hónap naptárát, két (2) argumentumot vár: az évet és a hónapot.calendar.isleap():Megvizsgálja, hogy egy év szökőév-e, egy (1) argumentumot vár, amely az ellenőrizendő év.calendar.leapdays():Megvizsgálja a szökőnapok számát az évek során, két (2) argumentumot vár, amelyek az ellenőrizendő időszak kezdő- és záróévei.itermonthdays():ACalendar()osztályt használja, és végigiterál a hónap összes napján, két argumentumot vár, az évet és a hónapot.itermonthdates():ACalendar()osztályt használja, és végigiterál a hónap összes dátumán, két argumentumot vár, az évet és a hónapot.monthdayscalendar():ACalendar()osztályt használja, és végigiterál a hónap összes hetén, két argumentumot vár, az évet és a hónapot. Az adatokat egy beágyazott listában tárolja.monthdays2calendar():Ugyanaz, mint az előző függvény, de a heteket és napokat együtt, egy kétdimenziós listában tárolja.
Kezdésként menjen a arany X jelhez, és ellenőrizze a naptárat, hozzon létre egy cal nevű változót, és tárolja el benne a calendar.calendar() értékét úgy, hogy az argumentumként az 2026 évet adja meg, így: cal = calendar.calendar(2026). Használja a display() függvényt, hogy megjelenítse az éppen beállított cal változót.
A naptár ellenőrzése és megjelenítése után menjen a világos X jelhez, és ellenőrizze az asztalon lévő táblázatot. Használja a read() függvényt, hogy megvizsgálja a szállítmány ütemezett dátumának hónapját tartalmazó megjegyzést. Hozzon létre két változót, egyet year néven és egyet month néven, és töltse fel őket a beolvasott információval.
Hozzon létre egy calendar_month nevű változót, és tárolja el benne a calendar.month() függvény értékét úgy, hogy a year és month változókat adja meg argumentumként. Használja a display() függvényt, hogy megjelenítse a hónap naptárát, amelyet az elosztási ütemtervek beállításához fog használni.
Menjen a sötét X jelhez a zöld szőnyegen, itt néhány adatpontot fog leírni annak érdekében, hogy az ütemtervek ne legyenek eltolva. Hozzon létre két változót, egyet leap_year néven és egyet leap_days néven. A leap_year változóban tárolja a calendar.isleap() eredményét úgy, hogy az argumentumként 2026-ot ad, így ellenőrizheti, hogy az aktuális projektév szökőév-e. A leap_days változó esetében tárolja a calendar.leapdays() értékét, és adja meg argumentumként az 2020 és 2027 éveket, hogy igazolja a projekt teljes időtartama alatt bekövetkezett szökőnapok számát. Használja az előre megírt write() függvényt, és rögzítse a leap_year és leap_days értékeket az adatok leírásához.
Menjen a sötét X jelhez a piros szőnyegen, és forduljon az asztal felé, itt felvázoljuk a hónap menetrendjét. Hozzon létre egy date nevű változót, és tárolja el benne a calendar.Calendar() értékét, ezzel létrehozva egy olyan osztályobjektumot, amelyre később hivatkozhatunk. Hozzon létre egy másik változót day_roster néven, és adjon neki egy üres stringet, így: day_roster = "". Ez lehetővé teszi, hogy a napok listáját stringként tároljuk.
Az editorban előre megírt for ciklus található, amely iterál a naptáron, és felvázolja a dátumokat. Használja az itermonthdays() függvényt, és adja meg az előzőleg létrehozott year és month változókat argumentumként. Adja hozzá a hiányzó elemeket, amennyiben szükséges a lista egyenlegének összeállításához.
for day in dates.itermonthdays(-insert value-, -insert value-): entry = "Day: %s \n" % (day) day_roster += entry
Miután a ciklus be van állítva, folytassa azzal, hogy létrehoz egy másolatát ennek a ciklusnak, de cserélje ki az itermonthdays() függvényt az itermonthdates() függvényre, és adja meg argumentumként a year és month változókat. Az entry változó rögzítse az adatokat így: entry = "%s \n" % (day). Ezek megadják a projekt időtartamának teljes dátumait. Használja az előre megírt display() függvényt a day_roster változóval, hogy megjelenítse a projekt napjainak teljes listáját a naptárban.
Menjen a sötét X jelhez a kék szőnyegen, és forduljon a megjegyzés felé, itt fogjuk beállítani a projekt utókövetési munkahéteket, kategorizálva listákba. Hozzon létre egy weeks nevű változót, és tárolja el benne a calendar.Calendar() értékét, ezzel létrehozva egy osztályobjektumot, amelyre a függvényekkel hivatkozhatunk. Vegye a month változót, és cserélje ki az értékét 7-re, hogy előrébb lépjen az ütemtervben, így: month = 7.
Hozzon létre egy week_roster nevű változót, és adjon neki egy üres stringet, így: week_roster = "". Az editorban előre megírt for ciklus található, amely iterál a naptáron, és felvázolja a hét napjait. Használja a monthdayscalendar() függvényt, és adja meg az előzőleg létrehozott year és month változókat argumentumként. Adja hozzá a hiányzó elemeket, amennyiben szükséges a lista egyenlegének összeállításához.
for day in weeks.monthdayscalendar(-insert value-, -insert value-): entry = "%s \n" % (day) week_roster += entry
Miután a ciklus be van állítva, folytassa azzal, hogy létrehoz egy másolatát ennek a ciklusnak, de cserélje ki a monthdayscalendar() függvényt monthdays2calendar() függvényre, és adja meg argumentumként a year és month változókat. Ezek megadják a projekt időtartamának teljes dátumait. Használja az előre megírt display() függvényt a week_roster változóval, hogy megjelenítse a projekt hétköznapjainak teljes listáját a naptárban a szint teljesítéséhez.