Python Samouczek KALENDARZA z przykładem

Moduł kalendarza w Python posiada klasę kalendarza, która umożliwia obliczenia dla różnych zadań na podstawie daty, miesiąca i roku. Ponadto klasy TextCalendar i HTMLCalendar w Python pozwala edytować kalendarz i używać go zgodnie z własnymi wymaganiami.

Zobaczmy, co możemy z tym zrobić Python Kalendarz.

Krok 1) Uruchom kod.

KALENDARZ w Python

  • Linia kodu nr 1: Zaczynamy od „importu kalendarza”, który zaimportuje wszystkie klasy tego modułu.
  • Wiersz kodu nr 3: c= kalendarz.TextCalendar(calendar.SUNDAY) mówi interpreterowi, aby utworzył kalendarz tekstowy. Początek miesiąca będzie w niedzielę. W Python, możesz sformatować kalendarz, tak jak na początek możesz zmienić dzień miesiąca
  • Linia kodu nr 4: str= c.formatmonth(2025,1) Tworzymy kalendarz na rok 2025, miesiąc 1 – styczeń
  • Linia kodu nr 5: print str wydrukuje wynik.

Zmieńmy szybko wartość z niedzieli na czwartek i sprawdźmy wynik

KALENDARZ w Python

Krok 2) Możesz także 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

KALENDARZ w Python

Krok 3) Metalowe ramki w ciągu dni miesiąca, używając c.itermonthday (2025,4), pobierze całkowitą liczbę dni w tym miesiącu.

KALENDARZ w Python

  • Kiedy wykonasz kod, aby uzyskać całkowitą liczbę dni dla określonego miesiąca, powiedz „kwiecień”, otrzymasz 30 dni na wyjściu, ale zobaczysz także kilka zer wraz z tymi dniami na początku, a czasem na końcu .
  • Zero w wynikach oznacza, że ​​dzień tygodnia należy do miesiąca nakładającego się, co oznacza, że ​​nie należy do tego miesiąca.
  • Te zera pojawiają się na wyjściu, ponieważ w kodzie wspomniałeś o dniu (czwartek), więc gdy wywołasz funkcję „c.itermonthdays”, zacznie ona liczyć dni od czwartku, a Twój czwartek może nie zaczynać się od daty 1st kwietnia może to być 28th lub 29th marca, więc kiedy wykonasz kod, zacznie on odliczać dni od 28th marca i dni po nim do 1st kwietnia. Dni te będą liczone jako zero, a na wyjściu zobaczysz te zera. To samo dotyczy końca miesiąca.
  • Zatem z wyjątkiem daty 1-30, wszystkie daty z poprzedniego i następnego miesiąca pojawią się na wyjściu jako zera.

Krok 4) Możesz pobrać dane z systemu lokalnego, takie jak miesiące lub dni tygodnia itp

KALENDARZ w Python

  • Wynik tutaj pokazuje, że wydrukowaliśmy nazwę miesiąca z systemu lokalnego. Podobnie możesz również pobrać nazwę dnia tygodnia, jak pokazano poniżej
  • Dane wyjściowe będą zależeć od systemu lokalnego. Załóżmy, że jeśli Twój system lokalny obejmuje inne kraje, wówczas dane wyjściowe będą zgodne z lokalnymi ustawieniami tego kraju. Tutaj mamy miesiące, więc nie będzie to różnica, ale jeśli będzie to tydzień lub dzień, na pewno będzie inaczej.

KALENDARZ w Python

Krok 5) Można pobrać listę konkretnego dnia na cały rok. Na przykład każdego pierwszego dnia przypada dzień audytu Monday tygodnia. Chcesz poznać datę pierwszego Monday za każdy miesiąc. Możesz użyć tego kodu

KALENDARZ w Python

  • mycal = kalendarz.miesiąccalendar(2025, miesiąc) utworzy kalendarz na dany miesiąc
  • Ustaw zmienne tydzień1 i tydzień2 na pierwszy i drugi tydzień kalendarza
  • Sprawdź, czy tydzień 1 zawiera Monday, ustaw dzień audytu
  • W przeciwnym razie 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 będzie miała określoną długość, opartą na liczbie tygodni w miesiącu. W naszym przypadku będzie to najpierw jeden lub dwa Monday tygodnia będzie najczęściej w pierwszym tygodniu, ale jeśli nie, rozważ drugi tydzień. Zobaczmy szczegółowo, dlaczego rozważamy również drugi tydzień.
  • Tutaj używamy stałej kalendarzowej Monday, obiekt kalendarza podaje stałe reprezentujące niedzielę, Monday, wtorek i tak dalej, i tak dalej. Widzieliśmy je już wcześniej. Tak więc, jeśli w pierwszym tygodniu dzień reprezentowany przez Monday stała nie jest równa 0, pamiętaj, że zera oznaczają dni należące do innego miesiąca. Zatem w tym przypadku, jeśli wynosi zero, będzie to a Monday który należy do poprzedniego miesiąca. Ale jeśli pierwszy Monday nie jest równe 0, oznacza to, że mój dzień audytu będzie w pierwszym tygodniu. W przeciwnym razie, jeśli jest to 0, to pierwszy Monday nie jest w pierwszym tygodniu miesiąca, musi być w drugim.
  • Więc mówię OK, ustaw zmienną dnia audytu na Monday reprezentowany przez tydzień drugi. Zatem dzień audytu będzie niezależnie od tego, jaki będzie dzień w pierwszym lub drugim tygodniu.

Oto pełny 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))

Podsumowanie

  • In Python, możesz sformatować kalendarz według własnego uznania, zmieniając dzień miesiąca, w którym ma się rozpocząć
  • Wydrukuj kalendarz w formacie HTML
  • Pobierz dane z systemu lokalnego, np. miesiące lub dni tygodnia
  • Pobierz listę konkretnego dnia na cały rok