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.

  • 🔘 Dwa rodzaje kalendarza: Klasy TextCalendar i HTMLCalendar generują kalendarze w formacie zwykłego tekstu i gotowe do publikacji w Internecie na wybrany miesiąc lub rok.
  • Pierwszy dzień powszedni: Stałe, takie jak calendar.SUNDAY i metoda setfirstweekday(), zmieniają dzień, w którym rozpoczyna się każdy tydzień.
  • Dni iteracji: Metoda itermonthdays() pętla po miesiącu i znaczniki nakładają sięping dni z sąsiadujących miesięcy jako zera.
  • 🧪 Funkcje pomocnicze: Funkcje takie jak isleap(), weekday() i monthrange() pozwalają na uzyskanie odpowiedzi na często zadawane pytania dotyczące dat bez konieczności korzystania z żadnej dodatkowej biblioteki.
  • 🛠️. Biblioteka standardowa: Moduł kalendarza jest dostarczany z Python, więc nie ma potrzeby instalowania go przed zaimportowaniem i użyciem.
  • 🤖 Przepływy pracy AI: Procesy uczenia maszynowego pozwalają na wyprowadzenie cech kalendarza, takich jak flagi dni tygodnia i lat przestępnych, na potrzeby prognozowania szeregów czasowych.

Python Moduł kalendarza

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.

Wydrukuj kalendarz tekstowy w Python

  • 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.

Zmień pierwszy dzień roboczy Python kalendarz

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.

Wydrukuj kalendarz HTML w Python

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.

Pętla po dniach miesiąca w Python

  • 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.

Pobierz nazwy miesięcy z systemu lokalnego w Python

  • 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.

Pobierz nazwy dni tygodnia z systemu lokalnego w Python

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.

Znajdź konkretny dzień na cały rok w Python

  • 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.

FAQ

Moduł kalendarza koncentruje się na tworzeniu i analizowaniu kalendarzy – tekstu, kodu HTML, numerów dni tygodnia i sprawdzaniu lat przestępnych. Moduł datetime obsługuje konkretne znaczniki czasu, obliczenia arytmetyczne i formatowanie poszczególnych dat i godzin. Wiele programów importuje oba te moduły i używa ich razem.

Wywołaj calendar.weekday(rok, miesiąc, dzień). Zwraca liczbę całkowitą od 0 (Monday) do 6 (niedziela). Połącz to z calendar.day_name, aby przekonwertować tę liczbę na czytelną etykietę, taką jak Monday lub piątek.

Użyj calendar.monthrange(rok, miesiąc). Zwraca ona krotkę, której drugą wartością jest liczba dni, więc calendar.monthrange(2025, 2)[1] zwraca 28. Pierwsza wartość to dzień tygodnia pierwszego dnia tego miesiąca.

Użyj calendar.LocaleTextCalendar lub calendar.LocaleHTMLCalendar i przekaż ustawienie regionalne, takie jak „fr_FR”. Sformatowany miesiąc wyświetla nazwy dni tygodnia i miesięcy w tym języku, pod warunkiem, że ustawienie regionalne jest zainstalowane w systemie operacyjnym.

Wygeneruj znacznik za pomocą HTMLCalendar().formatmonth(2025, 1), a następnie otwórz plik w trybie zapisu i wywołaj write() z tym ciągiem znaków. Zapisanie go z rozszerzeniem .html umożliwi wyświetlanie kalendarza w formacie stylizowanym w dowolnej przeglądarce.

Domyślnie tydzień zaczyna się Monday, zgodnie z europejską konwencją. Wywołaj calendar.setfirstweekday(calendar.SUNDAY) lub przekaż stałą, taką jak calendar.SUNDAY, do obiektu TextCalendar, aby tydzień zaczynał się w innym dniu.

Strumienie danych wykorzystują funkcje kalendarza do wyprowadzania z surowych dat cech takich jak dzień tygodnia, numer tygodnia i flagi lat przestępnych. Te zmodyfikowane funkcje kalendarza pomagają modelom uczenia maszynowego wychwytywać wzorce tygodniowe i sezonowe w prognozowaniu szeregów czasowych.

Tak. GitHub Copilot i asystenci AI z wykorzystaniem agentów mogą pisać fragmenty kodu modułów kalendarza — drukując miesiące, sprawdzając lata przestępne lub tworząc kalendarz HTML — na podstawie krótkiego komentarza. Revsprawdź wynik, ponieważ indeksowanie dni tygodnia i ustawienia pierwszego dnia są łatwe do pomylenia.

Podsumuj ten post następująco: