Fortgeschrittener Python-Entwicklungskurs
Kapitel
>
Stufe
String- und Zeitmodule
Kalendermodul
Ziel
Überprüfe den Kalender und lege Termine für einige der Lieferzeiten mit dem Calendar-Modul fest.
Es gibt mehrere Sendungen, die angekommen sind, und Zeitpläne, die eingehalten werden müssen, damit sie um den neuen Farmbau verteilt werden können. Früher verwendeten wir das Date-Modul, um Versandetiketten einzurichten. Hier werden wir die Zeitpläne mit dem Calendar-Modul festlegen. Um die Klassen und Funktionen des Modules zu nutzen, verwende import calendar, um alle relevanten Materialien zu importieren.
Für unsere Zwecke verwenden wir die folgenden Funktionen des Calendar-Moduls:
calendar.calendar():Zeigt den vollständigen Kalender für ein Jahr an, nimmt ein (1) Argument entgegen, nämlich das Jahr, das angezeigt werden soll.calendar.month():Zeigt einen Kalender für einen einzelnen Monat an, nimmt zwei (2) Argumente entgegen, das Jahr und den Monat.calendar.isleap():Überprüft, ob ein Jahr ein Schaltjahr ist, nimmt ein (1) Argument entgegen, nämlich das zu überprüfende Jahr.calendar.leapdays():Überprüft die Anzahl der Schaltage, die über die Jahre hinweg angesammelt wurden, nimmt zwei (2) Argumente entgegen, die Jahre, die den Zeitraum umfassen, den du überprüfen möchtest.itermonthdays():Verwendet dieCalendar()-Klasse, iteriert durch alle Tage im Monat, nimmt zwei Argumente entgegen, das Jahr und den Monat.itermonthdates():Verwendet dieCalendar()-Klasse, iteriert durch alle Datumswerte im Monat, nimmt zwei Argumente entgegen, das Jahr und den Monat.monthdayscalendar():Verwendet dieCalendar()-Klasse, iteriert durch alle Wochen im Monat, nimmt zwei Argumente entgegen, das Jahr und den Monat. Speichert die Daten in einer verschachtelten Liste.monthdays2calendar():Funktioniert wie die vorherige Funktion, speichert jedoch die Wochen und Tage zusammen in einer zweidimensionalen Liste.
Um zu beginnen, gehe zur goldenen X-Markierung und überprüfe den Kalender. Erstelle eine Variable namens cal und speichere den Wert von calendar.calendar() darin, wobei du das Jahr 2026 als Argument hinzufügst, so: cal = calendar.calendar(2026). Verwende die Funktion display(), um die Variable cal, die du gerade eingerichtet hast, anzuzeigen.
Nachdem du den Kalender überprüft und angezeigt hast, gehe zur hellen X-Markierung und sieh dir die Tabelle auf dem Schreibtisch an. Verwende die Funktion read(), um das Memo für den geplanten Datummonat der Lieferung zu überprüfen. Erstelle zwei Variablen, eine namens year und eine namens month, und fülle diese mit den Informationen, die du gelesen hast.
Erstelle eine Variable namens calendar_month und speichere den Wert der Funktion calendar.month() unter Verwendung der Variablen year und month als Argumente. Verwende die Funktion display(), um den Kalendermonat anzuzeigen, der verwendet wird, um die Verteilungstermine festzulegen.
Gehe zur dunklen X-Markierung über den grünen Teppich, hier werden wir einige Datenpunkte notieren, um sicherzustellen, dass die Zeitpläne nicht verschoben werden. Erstelle zwei Variablen, eine namens leap_year und eine namens leap_days. Für die Variable leap_year speichere das Ergebnis von calendar.isleap() mit 2026 als Argument. Dies ermöglicht es dir zu überprüfen, ob das aktuelle Projektjahr ein Schaltjahr ist. Für die Variable leap_days speichere den Wert von calendar.leapdays() und füge die Werte 2020 und 2027 als Argumente hinzu. Dies überprüft die Anzahl der Schaltage, die während der gesamten Projektdauer aufgetreten sind. Verwende die vorgefertigte Funktion write() und füge leap_year und leap_days hinzu, um die Daten aufzuzeichnen.
Gehe zur dunklen X-Markierung über den roten Teppich und wende dich dem Schreibtisch zu. Hier werden wir den Monatsplan skizzieren. Erstelle eine Variable namens date und speichere den Wert von calendar.Calendar(). Dies erstellt ein Klassenobjekt, auf das wir später zugreifen können. Erstelle eine weitere Variable namens day_roster und weise ihr einen leeren String zu, so: day_roster = "".
Vorgefertigt im Editor befindet sich eine for-Schleife, die durch den Kalender iteriert und die Datumswerte auflistet. Verwende die Funktion itermonthdays() und füge die zuvor erstellten Variablen year und month als Argumente hinzu. Ergänze fehlende Elemente, falls notwendig, um die Gesamtliste zu vervollständigen.
for day in dates.itermonthdays(-insert value-, -insert value-): entry = "Day: %s \n" % (day) day_roster += entry
Nachdem die Schleife eingerichtet ist, erstelle eine Kopie dieser Schleife, ersetze jedoch die Funktion itermonthdays() durch itermonthdates() und füge die Variablen year und month als Argumente hinzu. Für die Variable entry soll die Datenerfassung folgendermaßen erfolgen: entry = "%s \n" % (day). Diese geben uns die vollständigen Datumsangaben der Projektdauer. Verwende die vorgefertigte Funktion display() mit der Variable day_roster, um die vollständige Liste der Projekttage im Kalender anzuzeigen.
Gehe zur dunklen X-Markierung über den blauen Teppich und wende dich dem Memo zu. Hier werden wir den Projekt-Nachbearbeitungswochenplan, der in Listen katalogisiert ist, aufstellen. Erstelle eine Variable namens weeks und speichere den Wert von calendar.Calendar(). Dies erstellt ein Klassenobjekt, auf das wir mit den Funktionen zugreifen können. Ersetze den Wert der Variablen month durch 7, um den Zeitplan, mit dem wir arbeiten, voranzutreiben, so: month = 7.
Erstelle eine Variable namens week_roster und weise ihr einen leeren String zu, so: week_roster = "". Vorgefertigt im Editor befindet sich eine for-Schleife, die durch den Kalender iteriert und die Wochentage auflistet. Verwende die Funktion monthdayscalendar() und füge die zuvor erstellten Variablen year und month als Argumente hinzu. Ergänze fehlende Elemente, falls notwendig, um die Gesamtliste zu vervollständigen.
for day in weeks.monthdayscalendar(-insert value-, -insert value-): entry = "%s \n" % (day) week_roster += entry
Nachdem die Schleife eingerichtet ist, erstelle eine Kopie dieser Schleife, ersetze jedoch die Funktion monthdayscalendar() durch monthdays2calendar() und füge die Variablen year und month als Argumente hinzu. Diese geben uns die vollständigen Datumsangaben der Projektdauer. Verwende die vorgefertigte Funktion display() mit der Variable week_roster, um die vollständige Liste der Projektwochen im Kalender anzuzeigen und somit den Level abzuschließen.