Moduł kalendarza w Pythonie ma klasę kalendarza, która umożliwia obliczenia dla różnych zadań na podstawie daty, miesiąca i roku. Ponadto klasa TextCalendar i HTMLCalendar w Pythonie umożliwia edycję kalendarza i używanie go zgodnie z wymaganiami.
Zobaczmy, co możemy zrobić z kalendarzem Pythona.
Krok 1) Uruchom kod.
- Linia kodu nr 1: Zaczynamy od „importu kalendarza”, który zaimportuje wszystkie klasy tego modułu.
- Linia kodu nr 3: c = calendar.TextCalendar (calendar.SUNDAY) informuje tłumacza, aby utworzył kalendarz tekstowy. Początek miesiąca to niedziela. W Pythonie możesz sformatować kalendarz, tak jak możesz zmienić dzień miesiąca na początku
- Code Line # 4: str = c.formatmonth (2025,1) Tworzymy kalendarz na rok 2025, miesiąc 1 - styczeń
- Code Line # 5: print str wydrukuje wynik.
Szybko zmieńmy wartość z niedzieli na czwartek i sprawdźmy wyjście
Krok 2) Możesz również wydrukować kalendarz w formacie HTML, ta funkcja jest pomocna dla programistów, jeśli chcą wprowadzić jakiekolwiek zmiany w wyglądzie i działaniu kalendarza
Krok 3) Pętle w dniach miesiąca przy użyciu c.itermonthday (2025,4), pobierze całkowitą liczbę dni dla tego miesiąca.
- Kiedy wykonasz kod, aby uzyskać łączną liczbę dni dla określonego miesiąca, powiedz „kwiecień”, a następnie otrzymasz 30 dni na wyjściu, ale zobaczysz również zera wraz z tymi dniami na początku, a czasem na końcu .
- Zera w wyjściu oznaczają, że dzień tygodnia pokrywa się z miesiącem, co oznacza, że nie należy do tego miesiąca.
- Te zera pojawia się w produkcji, ponieważ w kodzie zostały wymienione dni (czwartek), więc po wywołaniu funkcji „c.itermonthdays”, rozpocznie dni licząc od czwartku i swojej czwartek nie może rozpocząć się z dniem 1 st kwietnia to może być 28 th lub 29 th marca, więc podczas wykonywania kodu zacznie dni licząc od 28 th marca i wszelkich dni później do 1 st kwietnia. Te dni będą liczone jako zero, a na wyjściu zobaczysz te zera i to samo dotyczy końca miesiąca.
- Zatem z wyjątkiem dat 1-30, wszystkie daty z poprzedniego i końcowego miesiąca pojawią się w wynikach jako zera.
Krok 4) Możesz pobrać dane z systemu lokalnego, takie jak miesiące lub dni powszednie itp
- Wynik pokazany tutaj pokazuje, że wypisaliśmy nazwę miesiąca z lokalnego systemu. Podobnie możesz pobrać nazwę dni tygodnia, jak pokazano poniżej
- Wynik będzie zależał od systemu lokalnego, przypuśćmy, że jeśli twój system lokalny jest w innych krajach, to da wynik zgodnie z lokalnymi ustawieniami tego kraju. Tutaj mamy miesiące, więc nie będzie różnicy, ale jeśli będzie tydzień czy dzień, to na pewno będzie inaczej.
Krok 5) Możesz pobrać listę konkretnego dnia na cały rok. Na przykład dzień audytu przypada w każdy pierwszy poniedziałek tygodnia. Chcesz znać datę pierwszego poniedziałku każdego miesiąca. Możesz użyć tego kodu
- mycal = calendar.monthcalendar (2025, month) utworzy kalendarz na miesiąc
- Ustaw zmienne tydzień1 i tydzień2 na pierwszy i drugi tydzień kalendarza
- Sprawdź, czy tydzień 1 zawiera poniedziałek, ustaw dzień audytu
- W przeciwnym razie ustaw dzień audytu jako pierwszy poniedziałek w tygodniu 2
- Dane wyjściowe pokazują datę pierwszego poniedziałku przypadającego w tym miesiącu.
- Długość tego obiektu Cal będzie miała określoną długość w oparciu o liczbę tygodni w miesiącu. W naszym przypadku będzie to jeden lub dwa, ponieważ pierwszy poniedziałek tygodnia będzie najczęściej w pierwszym tygodniu, ale jeśli nie, to rozważ drugi tydzień. Zobaczmy szczegółowo, dlaczego rozważamy również drugi tydzień.
- Tutaj używamy stałej kalendarza Monday, obiekt kalendarza podaje stałe, które reprezentują niedzielę, poniedziałek, wtorek itd. Widzieliśmy je wcześniej. Tak więc, jeśli w pierwszym tygodniu dzień reprezentowany przez stałą poniedziałkową nie jest równy 0, pamiętaj, że zera oznaczają dni należące do innego miesiąca. Tak więc w tym przypadku, jeśli wynosi zero, będzie to poniedziałek należący do poprzedniego miesiąca. Ale jeśli pierwszy poniedziałek nie jest równy 0, oznacza to, że mój dzień audytu będzie w pierwszym tygodniu. W przeciwnym razie, jeśli jest to 0, to pierwszy poniedziałek nie jest w pierwszym tygodniu miesiąca, musi być w drugim.
- Więc mówię dobrze, ustaw moją zmienną dnia audytu na poniedziałek reprezentowany przez tydzień drugi. Tak więc dzień audytu powróci bez względu na dzień pierwszego lub drugiego tygodnia.
Oto pełny kod
Przykład Pythona 2
import kalendarza# Utwórz zwykły kalendarz tekstowyc = calendar.TextCalendar (calendar.THURSDAY)str = c.formatmonth (2025, 1, 0, 0)drukuj str# Utwórz kalendarz w formacie HTMLhc = calendar.HTMLCalendar (calendar.THURSDAY)str = hc.formatmonth (2025, 1)drukuj str# pętli w dniach miesiąca# zera oznacza, że dzień tygodnia przypada w następnym lub nakładającym się miesiącufor i in c. itermonthdays (2025, 4):drukuj i# Kalendarz może podawać informacje w oparciu o lokalne takie nazwy dni i miesięcy (pełne i skrócone formy)dla nazwy w calendar.month_name:Nazwa wydrukuna dzień w calendar.day_name:wydrukować dzień# oblicz dni na podstawie reguły: na przykład dzień audytu w drugi poniedziałek każdego miesiąca# Dowiedz się, jakie byłyby dni każdego miesiąca, możemy użyć skryptu, jak pokazano tutajdla miesiąca z zakresu (1, 13):# Pobiera listę tygodni reprezentujących miesiącmycal = calendar.monthcalendar (2025, miesiąc)# Pierwszy PONIEDZIAŁEK musi przypadać w ciągu pierwszych dwóch tygodnitydzień 1 = mycal [0]tydzień2 = mycal [1]if week1 [calendar.MONDAY]! = 0:auditday = week1 [kalendarz.MONDAY]jeszcze:# jeśli pierwszy PONIEDZIAŁEK nie jest w pierwszym tygodniu, musi być w drugim tygodniuauditday = week2 [kalendarz.MONDAY]print "% 10s% 2d"% (calendar.month_name [miesiąc], auditday)
Przykład Pythona 3
import kalendarza# Utwórz zwykły kalendarz tekstowyc = calendar.TextCalendar (calendar.THURSDAY)str = c.formatmonth (2025, 1, 0, 0)print (str)# Utwórz kalendarz w formacie HTMLhc = calendar.HTMLCalendar (calendar.THURSDAY)str = hc.formatmonth (2025, 1)print (str)# pętli w dniach miesiąca# zera oznacza, że dzień tygodnia przypada w następnym lub nakładającym się miesiącufor i in c. itermonthdays (2025, 4):drukuj (i)# Kalendarz może podawać informacje w oparciu o lokalne takie nazwy dni i miesięcy (pełne i skrócone formy)dla nazwy w calendar.month_name:Nazwa wydruku)na dzień w calendar.day_name:print (dzień)# oblicz dni na podstawie reguły: na przykład dzień audytu w drugi poniedziałek każdego miesiąca# Dowiedz się, jakie byłyby dni każdego miesiąca, możemy użyć skryptu, jak pokazano tutajdla miesiąca z zakresu (1, 13):# Pobiera listę tygodni reprezentujących miesiącmycal = calendar.monthcalendar (2025, miesiąc)# Pierwszy PONIEDZIAŁEK musi przypadać w ciągu pierwszych dwóch tygodnitydzień 1 = mycal [0]tydzień2 = mycal [1]if week1 [calendar.MONDAY]! = 0:auditday = week1 [kalendarz.MONDAY]jeszcze:# jeśli pierwszy PONIEDZIAŁEK nie jest w pierwszym tygodniu, musi być w drugim tygodniuauditday = week2 [kalendarz.MONDAY]print ("% 10s% 2d"% (calendar.month_name [miesiąc], auditday))
Podsumowanie:
- W Pythonie możesz sformatować kalendarz tak, jak chcesz, ponieważ możesz zmienić rozpoczynający się dzień miesiąca
- Wydrukuj kalendarz w formacie HTML
- Pobierz dane z systemu lokalnego, np. Miesiące lub dni powszednie
- Pobierz listę konkretnego dnia na cały rok