Python КАЛЕНДАР Підручник із прикладом

Модуль календаря в Python має клас календаря, який дозволяє обчислювати різні завдання на основі дати, місяця та року. Крім цього, клас TextCalendar і HTMLCalendar в Python дозволяє редагувати календар і використовувати його відповідно до ваших вимог.

Подивимося, що ми можемо зробити Python Календар.

Крок 1) Запустіть код.

КАЛЕНДАР в Python

  • Рядок коду № 1: ми починаємо з «імпорту календаря», який імпортує всі класи цього модуля.
  • Кодовий рядок № 3: c= calendar.TextCalendar(calendar.SUNDAY) повідомляє інтерпретатору створити текстовий календар. Початком місяця буде неділя. в Python, ви можете відформатувати календар, оскільки ви можете спочатку змінити день місяця
  • Рядок коду № 4: str= c.formatmonth(2025,1) Створюємо календар на 2025 рік, 1 місяць – січень
  • Рядок коду № 5: print str виведе результат.

Давайте швидко змінимо значення з неділі на четвер і перевіримо результат

КАЛЕНДАР в Python

Крок 2) Ви також можете роздрукувати календар у форматі HTML, ця функція корисна для розробників, якщо вони хочуть внести будь-які зміни у зовнішній вигляд календаря

КАЛЕНДАР в Python

Крок 3) Петлі за дні місяця за допомогою c.itermonthday (2025,4), він отримає загальну кількість днів для цього місяця.

КАЛЕНДАР в Python

  • Коли ви виконуєте код, щоб отримати загальну кількість днів для певного місяця, скажіть «квітень», тоді ви отримаєте 30 днів на виході, але ви також побачите кілька нулів разом із цими днями на початку, а іноді й у кінці. .
  • Нулі у вихідних даних означають, що день тижня належить до місяця, що накладається, тобто він не належить до цього місяця.
  • Ці нулі з’являються у вихідних даних, тому що у вашому коді ви згадали день (четвер), тому, коли ви викликаєте функцію «c.itermonthdays», вона почне рахувати дні з четверга, і ваш четвер може не починатися з дати 1st квітня це може бути 28th або 29th березня, тому коли ви виконуєте код, він почне рахувати дні з 28th березня та будь-які дні після цього до 1st квітня. Ці дні вважатимуться нульовими, і у вихідних даних ви побачите ці нулі, і те саме стосується кінця місяця.
  • Таким чином, окрім дати 1-30, усі дати попереднього та останнього місяця відображатимуться у виводі як нулі.

Крок 4) Ви можете отримати дані з локальної системи, як-от місяці, дні тижня тощо

КАЛЕНДАР в Python

  • Вихідні дані показують, що ми роздрукували назву місяця з локальної системи. Так само ви також можете отримати назву днів тижня, як показано нижче
  • Результат залежатиме від локальної системи, припустімо, якщо ваша локальна система є іншою країною, тоді вона видасть результат відповідно до локальних налаштувань цієї країни. Тут у нас є місяці, тому це не буде різниці, але якщо це буде тиждень або день, це точно буде відрізнятися.

КАЛЕНДАР в Python

Крок 5) Ви можете отримати список конкретного дня за цілий рік. Наприклад, кожного першого є ревізійний день Monday тижня. Ви хочете знати дату першого Monday за кожен місяць. Ви можете використовувати цей код

КАЛЕНДАР в Python

  • mycal = calendar.monthcalendar(2025, місяць) створить календар на місяць
  • Встановіть змінні week1 і week2 на перший і другий тиждень календаря
  • Перевірте, чи містить тиждень 1 Monday, встановити день ревізії
  • В іншому випадку встановіть день аудиту як перший Monday на 2 тижні
  • Вихідні дані показують дату для першого Monday що припадає на цей місяць.
  • Довжина цього об’єкта Cal буде певною довжиною залежно від кількості тижнів у місяці. У нашому випадку це буде спочатку один або два як таких Monday тижня найчастіше буде на першому тижні, але якщо ні, розгляньте другий тиждень. Розглянемо детальніше, чому ми також розглядаємо другий тиждень.
  • Тут ми використовуємо константу календаря Monday, об’єкт calendar надає вам константи, які представляють неділю, Monday, вівторок, так далі, так далі. Ми бачили це раніше. Отже, якщо на першому тижні день представлений Monday константа не дорівнює 0, пам'ятайте, що нулі означають дні, які належать до іншого місяця. Отже, у цьому випадку, якщо це нуль, це буде a Monday що відноситься до попереднього місяця. Але якщо перше Monday не дорівнює 0, це означає, що мій день аудиту буде в межах першого тижня. В іншому випадку, якщо це 0, то перший Monday не в перший тиждень місяця, це має бути в другий.
  • Отже, тоді я кажу добре, встановлю мою змінну дня аудиту як Monday представлений другим тижнем. Отже, день аудиту повернеться незалежно від того, який день буде для першого чи другого тижня.

Ось повний код

Python 2 Приклад

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 Приклад

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))

Підсумки

  • In Python, ви можете відформатувати календар як забажаєте, оскільки ви можете змінити день місяця, який починається
  • Роздрукуйте календар у форматі HTML
  • Отримайте дані з локальної системи, наприклад місяці або дні тижня
  • Отримати список конкретного дня за цілий рік