Python Moduł kalendarza z przykładem
⚡ Inteligentne podsumowanie
Moduł kalendarza w Python Generuje kalendarze tekstowe i HTML za pomocą klas TextCalendar i HTMLCalendar. Wykonuje obliczenia daty na podstawie dnia, miesiąca i roku oraz umożliwia dostosowanie początkowego dnia tygodnia dla dowolnego miesiąca.

moduł kalendarza w Python posiada klasę kalendarza, która umożliwia wykonywanie obliczeń dla różnych zadań na podstawie daty, miesiąca i roku. Ponadto Kalendarz tekstowy oraz Kalendarz HTML zajęcia w Python Pozwala edytować kalendarz i używać go zgodnie z własnymi potrzebami. Zobaczmy, co możemy z nim zrobić. Python kalendarz.
Czym jest moduł kalendarza w Python?
moduł kalendarza jest częścią Python Biblioteka standardowa, więc jest dostępna bez instalacji. Grupuje kilka klas i funkcji pomocniczych, które budują kalendarze i odpowiadają na typowe pytania dotyczące dat, takie jak dzień tygodnia, w którym przypada dana data, lub liczba dni w miesiącu.
Moduł udostępnia pięć głównych klas:
- Kalendarz jest klasą bazową dostarczającą dane, na podstawie których tworzone są pozostałe kalendarze.
- Kalendarz tekstowy tworzy kalendarze tekstowe na miesiąc lub cały rok.
- Kalendarz HTML tworzy kalendarze jako tabele HTML dla stron internetowych.
- Kalendarz tekstu lokalnego jest kalendarzem tekstowym, który wykorzystuje nazwy dni i miesięcy wybranej lokalizacji.
- Kalendarz lokalnyHTML jest odpowiednikiem HTML, który respektuje wybrane ustawienia regionalne.
Domyślnie tydzień kalendarzowy zaczyna się Monday, zgodnie z konwencją europejską. Możesz zmienić pierwszy dzień za pomocą stałej, takiej jak calendar.SUNDAY, jak pokazano w poniższych przykładach.
Jak wydrukować kalendarz tekstowy w Python
Krok 1) Uruchom kod.
- Code Wiersz nr 1: Zaczynamy od „import calendar”, co spowoduje zaimportowanie wszystkich klas tego modułu.
- Code Wiersz nr 3: c= calendar.TextCalendar(calendar.SUNDAY) nakazuje interpreterowi utworzenie kalendarza tekstowego. Początkiem miesiąca będzie niedziela. W PythonMożesz sformatować kalendarz według własnych upodobań i zmienić dzień, od którego zaczyna się miesiąc.
- Code Wiersz nr 4: str= c.formatmonth(2025,1) tworzy kalendarz na rok 2025, miesiąc 1 – styczeń.
- Code Wiersz nr 5: print str wydrukuje wynik.
Zmieńmy szybko wartość z niedzieli na czwartek i sprawdźmy wynik.
Jak wydrukować kalendarz HTML w Python
Krok 2) Możesz również wydrukować kalendarz w formacie HTML. Ta funkcja jest przydatna dla programistów, którzy chcą wprowadzić zmiany w wyglądzie i działaniu kalendarza.
Jak tworzyć pętle dni miesiąca
Krok 3) Metalowe ramki na podstawie dni miesiąca, korzystając z c.itermonthdays (2025,4); zostanie pobrana całkowita liczba dni w danym miesiącu.
- Gdy wykonasz kod w celu uzyskania całkowitej liczby dni konkretnego miesiąca, np. „kwietnia”, na wyjściu otrzymasz 30 dni, ale zobaczysz też zera na początku i czasami na końcu tych dni.
- Zera w wynikach oznaczają, że dzień tygodnia się nakładaping miesiąc, co oznacza, że nie należy do tego miesiąca.
- Te zera pojawiają się w wynikach, ponieważ w kodzie podano dzień (czwartek). Zatem wywołanie funkcji „c.itermonthdays” rozpoczyna liczenie dni od czwartku, a Twój czwartek może nie zaczynać się 1 kwietnia – może to być 28 lub 29 marca. Kod rozpoczyna więc liczenie dni od 28 marca i wszystkich kolejnych dni aż do 1 kwietnia. Dni te są liczone jako zera i w wynikach będą widoczne te zera. To samo dotyczy końca miesiąca.
- Tak więc, z wyjątkiem dat 1–30, wszystkie daty z poprzedniego i następnego miesiąca pojawiają się na wyjściu jako zera.
Jak pobrać nazwy miesięcy i dni tygodnia z systemu lokalnego
Krok 4) Możesz pobrać dane z systemu lokalnego, np. dane dotyczące miesięcy lub dni tygodnia.
- Wynik pokazuje, że wydrukowaliśmy nazwy miesięcy z systemu lokalnego. Można również pobrać nazwy dni tygodnia, jak pokazano poniżej.
- Wynik zależy od systemu lokalnego. Jeśli system lokalny jest ustawiony na inny kraj, wynik jest zgodny z ustawieniami lokalnymi tego kraju. W tym przypadku mamy miesiące, więc nie będzie to miało znaczenia, ale w przypadku tygodnia lub dnia z pewnością będzie inaczej.
Jak znaleźć konkretny dzień na cały rok
Krok 5) Możesz pobrać listę z konkretnego dnia na cały rok. Na przykład, dzień audytu przypada co roku na pierwszy dzień roku. Monday tygodnia. Załóżmy, że chcesz poznać datę pierwszego Monday za każdy miesiąc. Możesz użyć tego kodu.
- mycal = calendar.monthcalendar(2025, month) tworzy kalendarz na dany miesiąc.
- Ustaw zmienne week1 i week2 na pierwszy i drugi tydzień kalendarza.
- Sprawdź, czy tydzień 1 zawiera Monday i ustalić dzień audytu.
- W przeciwnym wypadku ustaw dzień audytu jako pierwszy Monday w tygodniu 2.
- Dane wyjściowe pokazują datę pierwszego Monday który przypada w tym miesiącu.
- Długość tego obiektu Cal zależy od liczby tygodni w miesiącu. W naszym przypadku jest to jeden lub dwa tygodnie, ponieważ pierwszy Monday Tydzień najczęściej przypada na pierwszy tydzień, ale jeśli nie, to bierzemy pod uwagę drugi. Zobaczmy szczegółowo, dlaczego bierzemy pod uwagę również drugi tydzień.
- Tutaj używamy stałej kalendarzowej MondayObiekt kalendarza zapewnia stałe reprezentujące niedzielę, Monday, wtorek itd. Jeżeli w pierwszym tygodniu dzień reprezentowany przez Monday stała nie jest równa 0 – pamiętaj, zera oznaczają dni należące do innego miesiąca – wtedy to Monday Należy do tego miesiąca, a dzień audytu przypada w pierwszym tygodniu. Jeśli jest to 0, to pierwszy Monday nie przypada w pierwszym tygodniu miesiąca, więc musi przypadać w drugim.
- W takim przypadku ustawiamy zmienną dnia audytu na Monday reprezentowany przez tydzień drugi. Dzień audytu jest podawany z datą z pierwszego lub drugiego tygodnia.
Absolutna Python Kalendarz Code Przykład
Oto kompletny kod.
Python 2 Przykład
import calendar # Create a plain text calendar c = calendar.TextCalendar(calendar.THURSDAY) str = c.formatmonth(2025, 1, 0, 0) print str # Create an HTML formatted calendar hc = calendar.HTMLCalendar(calendar.THURSDAY) str = hc.formatmonth(2025, 1) print str # loop over the days of a month # zeroes indicate that the day of the week is in a next month or overlapping month for i in c.itermonthdays(2025, 4): print i # The calendar can give info based on local such a names of days and months (full and abbreviated forms) for name in calendar.month_name: print name for day in calendar.day_name: print day # calculate days based on a rule: For instance an audit day on the second Monday of every month # Figure out what days that would be for each month, we can use the script as shown here for month in range(1, 13): # It retrieves a list of weeks that represent the month mycal = calendar.monthcalendar(2025, month) # The first MONDAY has to be within the first two weeks week1 = mycal[0] week2 = mycal[1] if week1[calendar.MONDAY] != 0: auditday = week1[calendar.MONDAY] else: # if the first MONDAY isn't in the first week, it must be in the second week auditday = week2[calendar.MONDAY] print "%10s %2d" % (calendar.month_name[month], auditday)
Python 3 Przykład
import calendar # Create a plain text calendar c = calendar.TextCalendar(calendar.THURSDAY) str = c.formatmonth(2025, 1, 0, 0) print(str) # Create an HTML formatted calendar hc = calendar.HTMLCalendar(calendar.THURSDAY) str = hc.formatmonth(2025, 1) print(str) # loop over the days of a month # zeroes indicate that the day of the week is in a next month or overlapping month for i in c.itermonthdays(2025, 4): print(i) # The calendar can give info based on local such a names of days and months (full and abbreviated forms) for name in calendar.month_name: print(name) for day in calendar.day_name: print(day) # calculate days based on a rule: For instance an audit day on the second Monday of every month # Figure out what days that would be for each month, we can use the script as shown here for month in range(1, 13): # It retrieves a list of weeks that represent the month mycal = calendar.monthcalendar(2025, month) # The first MONDAY has to be within the first two weeks week1 = mycal[0] week2 = mycal[1] if week1[calendar.MONDAY] != 0: auditday = week1[calendar.MONDAY] else: # if the first MONDAY isn't in the first week, it must be in the second week auditday = week2[calendar.MONDAY] print("%10s %2d" % (calendar.month_name[month], auditday))
Przydatne funkcje w Python Moduł kalendarza
Oprócz powyższego przewodnika, moduł kalendarza zawiera kilka przydatnych funkcji, które działają bez tworzenia instancji klasy:
- kalendarz.kalendarz(rok) zwraca kalendarz całoroczny jako ciąg wielowierszowy, podczas gdy kalendarz.prcal(rok) drukuje bezpośrednio.
- kalendarz.miesiąc(rok, miesiąc) zwraca pojedynczy miesiąc jako tekst i calendar.prmonth(rok, miesiąc) drukuje to.
- kalendarz.miesiąckalendarz(rok, miesiąc) Zwraca miesiąc jako listę wierszy tygodnia, gdzie każdy dzień jest liczbą całkowitą, a dni poza miesiącem są równe 0.
Funkcje te umożliwiają szybkie, jednowierszowe generowanie kalendarza, co jest przydatne w skryptach i sesjach interaktywnych, w których nie jest potrzebna dodatkowa kontrola klas TextCalendar lub HTMLCalendar.
Jak sprawdzić, czy w danym roku występuje rok przestępny Python
Moduł kalendarza może również wskazać, czy dany rok jest rokiem przestępnym, co ma znaczenie, ponieważ luty ma w takich latach 29, a nie 28 dni. Zajmują się tym dwie funkcje:
- kalendarz.isleap(rok) zwraca wartość True, jeśli rok jest rokiem przestępnym, i False, jeśli jest inaczej.
- kalendarz.dni przestępne(y1, y2) Zwraca liczbę lat przestępnych w zakresie od y1 do y2 (ale nie włącznie).
Na przykład calendar.isleap(2024) zwraca wartość True, a calendar.isleap(2025) False. Sprawdzanie lat przestępnych jest przydatne przy sprawdzaniu dat, planowaniu wydarzeń cyklicznych lub liczeniu dokładnej liczby dni między dwoma latami.







