Zaawansowany kurs programowania w Pythonie
Rozdział
>
Poziom
Moduły łańcuchów znaków i czasu
Moduł Kalendarza
Cel
Sprawdź kalendarz i ustaw daty dla niektórych terminów dostaw przy użyciu modułu Calendar.
Wiele przesyłek dotarło, a harmonogramy muszą być dotrzymywane, aby mogły być rozdzielone w trakcie budowy nowej farmy. Wcześniej używaliśmy modułu date do ustawiania etykiet wysyłkowych, teraz ustawimy harmonogramy za pomocą modułu calendar. Aby korzystać z klas i funkcji modułu, użyj import calendar aby zaimportować wszystkie niezbędne materiały.
Do naszych celów będziemy używać następujących funkcji modułu calendar:
calendar.calendar():Wyświetla pełny kalendarz na rok, przyjmuje jeden (1) argument, którym jest rok, który chcesz wyświetlić.calendar.month():Wyświetla kalendarz dla pojedynczego miesiąca, przyjmuje dwa (2) argumenty, rok i miesiąc.calendar.isleap():Sprawdza, czy rok jest rokiem przestępnym, przyjmuje jeden (1) argument, którym jest rok do sprawdzenia.calendar.leapdays():Sprawdza liczbę dni przestępnych zgromadzonych w ciągu lat, przyjmuje dwa (2) argumenty, które obejmują okres, który chcesz sprawdzić.itermonthdays():Korzysta z klasyCalendar(), iteruje przez wszystkie dni w miesiącu, przyjmuje dwa argumenty: rok i miesiąc.itermonthdates():Korzysta z klasyCalendar(), iteruje przez wszystkie daty w miesiącu, przyjmuje dwa argumenty: rok i miesiąc.monthdayscalendar():Korzysta z klasyCalendar(), iteruje przez wszystkie tygodnie w miesiącu, przyjmuje dwa argumenty: rok i miesiąc. Przechowuje dane w zagnieżdżonej liście.monthdays2calendar():To samo co poprzednia funkcja, ale przechowuje tygodnie i dni razem w dwuwymiarowej liście.
Na początek, przejdź do złotego znaku X i sprawdź kalendarz, utwórz zmienną o nazwie cal i przypisz do niej wartość calendar.calendar() dodając rok 2026 jako argument, w ten sposób: cal = calendar.calendar(2026). Użyj funkcji display(), aby wyświetlić zmienną cal, którą właśnie utworzyłeś.
Po sprawdzeniu i wyświetleniu kalendarza, udaj się do jasnego znaku X i sprawdź arkusz kalkulacyjny na biurku. Użyj funkcji read(), aby sprawdzić notatkę dotyczącą zaplanowanego miesiąca daty dostawy. Utwórz dwie zmienne, jedną o nazwie year i drugą o nazwie month, i wypełnij je odczytanymi informacjami.
Utwórz zmienną o nazwie calendar_month i przypisz do niej wartość funkcji calendar.month() używając zmiennych year i month jako argumentów. Użyj funkcji display(), aby wyświetlić kalendarz miesiąca, który zostanie użyty do ustawienia harmonogramów dystrybucji.
Przejdź do ciemnego znaku X na zielonym dywanie, tutaj zanotujemy kilka punktów danych, aby upewnić się, że harmonogramy nie są przesunięte. Utwórz dwie zmienne, jedną o nazwie leap_year i drugą o nazwie leap_days. Dla zmiennej leap_year przypisz wynik funkcji calendar.isleap() z argumentem 2026. Pozwoli to zweryfikować, czy bieżący rok projektu jest rokiem przestępnym. Dla zmiennej leap_days przypisz wartość funkcji calendar.leapdays() i podaj wartości: 2020 i 2027 jako argumenty. To zweryfikuje liczbę dni przestępnych, które wystąpiły w trakcie całego trwania projektu. Użyj wstępnie zdefiniowanej funkcji write() i dodaj leap_year oraz leap_days, aby zapisać dane.
Przejdź do ciemnego znaku X na czerwonym dywanie i podejdź do biurka, tutaj ustalimy harmonogram miesiąca. Utwórz zmienną o nazwie date i przypisz do niej wartość calendar.Calendar(), co utworzy obiekt klasy, do którego możemy później odwołać się. Utwórz kolejną zmienną o nazwie day_roster i przypisz do niej pusty ciąg znaków, co pozwoli nam przechowywać listę dni w formie tekstowej. Na przykład: day_roster = "".
W edytorze wstępnie zdefiniowano pętlę for, która iteruje przez kalendarz i wypisuje daty. Użyj funkcji itermonthdays() i podaj zmienne year oraz month, które wcześniej utworzyłeś, jako argumenty. Dodaj brakujące elementy w razie potrzeby, aby zsumować listę dni.
for day in dates.itermonthdays(-insert value-, -insert value-): entry = "Day: %s \n" % (day) day_roster += entry
Gdy pętla jest już ustawiona, powtórz ją, tworząc jej duplikat, ale zastąp funkcję itermonthdays() funkcją itermonthdates() i podaj zmienne year oraz month jako argumenty. Dla zmiennej entry zapisz dane w następujący sposób: entry = "%s \n" % (day). Dzięki temu uzyskamy pełne daty trwania projektu. Użyj wstępnie zdefiniowanej funkcji display() z zmienną day_roster, aby wyświetlić pełną listę dni projektu w kalendarzu.
Przejdź do ciemnego znaku X na niebieskim dywanie i podejdź do notatki, tutaj ustawimy tygodnie pracy związane z projektem, skatalogowane w listach. Utwórz zmienną o nazwie weeks i przypisz do niej wartość calendar.Calendar(), co utworzy obiekt klasy, który możemy odwołać się przy pomocy funkcji. Zmień wartość zmiennej month na 7, aby przejść do harmonogramu, nad którym pracujemy, w ten sposób: month = 7.
Utwórz zmienną o nazwie week_roster i przypisz do niej pusty ciąg znaków, co pozwoli nam przechowywać listę tygodni w formie tekstowej. Na przykład: week_roster = "". W edytorze wstępnie zdefiniowano pętlę for, która iteruje przez kalendarz i wypisuje dni tygodnia. Użyj funkcji monthdayscalendar() i podaj zmienne year oraz month, które wcześniej utworzyłeś, jako argumenty. Dodaj brakujące elementy w razie potrzeby, aby zsumować listę.
for day in weeks.monthdayscalendar(-insert value-, -insert value-): entry = "%s \n" % (day) week_roster += entry
Gdy pętla jest już ustawiona, powtórz ją, tworząc jej duplikat, ale zastąp funkcję monthdayscalendar() funkcją monthdays2calendar() i podaj zmienne year oraz month jako argumenty. Dzięki temu uzyskamy pełne daty trwania projektu. Użyj wstępnie zdefiniowanej funkcji display() z zmienną week_roster, aby wyświetlić pełną listę dni roboczych projektu w kalendarzu i ukończyć poziom.