Python Модуль календаря з прикладом

⚡ Розумний підсумок

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

  • 🔘 Два типи календарів: Класи TextCalendar та HTMLCalendar створюють календарі у звичайному текстовому форматі та готові до використання в Інтернеті на вибраний місяць або рік.
  • ☑️ Перший будній день: Такі константи, як calendar.SUNDAY та метод setfirstweekday(), змінюють, з якого дня починається кожен тиждень.
  • Повторення днів: Метод itermonthdays() перебирає місяць і позначки перекриваютьсяping дні з суміжних місяців як нулі.
  • 🧪 Допоміжні функції: Такі функції, як isleap(), weekday() та monthrange(), відповідають на поширені запитання щодо дат без використання додаткової бібліотеки.
  • 🛠️ Стандартна бібліотека: Модуль календаря постачається з Python, тому його не потрібно встановлювати перед імпортом та використанням.
  • 🤖 Робочі процеси зі штучним інтелектом: Конвеєри машинного навчання виводять такі функції календаря, як прапорці дня тижня та високосного року, для прогнозування часових рядів.

Python Модуль календаря

Команда модуль календаря в Python має клас календаря, який дозволяє виконувати обчислення для різних завдань на основі дати, місяця та року. Крім того, Текстовий календар та HTMLКалендар заняття в Python дозволить вам редагувати календар і використовувати його відповідно до ваших потреб. Давайте подивимося, що ми можемо з цим зробити Python календар.

Що таке модуль календаря? Python?

Команда модуль календаря є частиною Python стандартна бібліотека, тому вона доступна без будь-якої установки. Вона об'єднує кілька класів та допоміжних функцій, які створюють календарі та відповідають на поширені запитання щодо дат, такі як на який день тижня припадає дата або скільки днів містить місяць.

Модуль пропонує п'ять основних класів:

  • Календар — це базовий клас, який надає дані, на основі яких будуються інші календарі.
  • Текстовий календар створює календарі у звичайному текстовому форматі на місяць або на повний рік.
  • HTMLКалендар створює календарі у вигляді HTML-таблиць для веб-сторінок.
  • ЛокальнийТекстКалендар — це текстовий календар, який використовує назви днів і місяців вибраної локалізації.
  • ЛокальHTMLКалендар — це HTML-еквівалент, який враховує вибрану локалізацію.

За замовчуванням календарний тиждень починається Monday, згідно з європейською конвенцією. Ви можете змінити перший день за допомогою константи, такої як calendar.SUNDAY, як показано в прикладах нижче.

Як роздрукувати текстовий календар у Python

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

Друк текстового календаря в Python

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

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

Змінити перший день тижня Python календар

Як роздрукувати HTML-календар у Python

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

Друк HTML-календаря в Python

Як перебрати дні місяця в циклі

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

Переберіть дні місяця в циклі Python

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

Як отримати назви місяців та днів тижня з локальної системи

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

Отримати назви місяців з локальної системи в Python

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

Отримати назви днів тижня з локальної системи в Python

Як знайти певний день на весь рік

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

Знайдіть певний день на весь рік у Python

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

Цілковита Python Календар Code Приклад

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

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

Корисні функції в Python Модуль календаря

Окрім наведеного вище покрокового керівництва, модуль календаря постачається з кількома зручними функціями, які працюють без створення екземпляра класу:

  • календар.календар(рік) повертає повний річний календар у вигляді багаторядкового рядка, тоді як календар.prcal(рік) друкує його безпосередньо.
  • календар.місяць(рік, місяць) повертає один місяць у вигляді тексту, та календар.prmonth(рік, місяць) друкує його.
  • календар.місяцькалендар(рік, місяць) повертає місяць у вигляді списку рядків тижня, де кожен день є цілим числом, а дні поза місяцем дорівнюють 0.

Ці функції дозволяють швидко виводити календар в один рядок, що зручно в скриптах та інтерактивних сеансах, де не потрібен додатковий контроль класів TextCalendar або HTMLCalendar.

Як перевірити високосний рік у Python

Модуль календаря також може підказати вам, чи є рік високосним, що важливо, оскільки лютий має 29 днів замість 28 у такі роки. Цим займаються дві функції:

  • календар.іспляний(рік) повертає значення True, якщо рік високосний, та False в іншому випадку.
  • календар.leapdays(y1, y2) повертає кількість високосних років у діапазоні від y1 до y2, але не включаючи його.

Наприклад, calendar.isleap(2024) повертає True, тоді як calendar.isleap(2025) повертає False. Перевірки на високосні роки корисні під час перевірки дат, планування повторюваних подій або підрахунку точної кількості днів між двома роками.

Поширені запитання

Модуль календаря зосереджений на створенні та аналізі календарів — текстових, HTML, номерів днів тижня та перевірок високосних років. Модуль datetime обробляє певні позначки часу, арифметичні дії та форматування окремих дат і часу. Багато програм імпортують обидва типи даних та використовують їх разом.

Викликайте calendar.weekday(рік, місяць, день). Повертає ціле число від 0 (Monday) до 6 (неділя). Поєднайте його з calendar.day_name, щоб перетворити це число на читабельну мітку, таку як Monday або п'ятницю.

Використовуйте calendar.monthrange(рік, місяць). Він повертає кортеж, другим значенням якого є кількість днів, тому calendar.monthrange(2025, 2)[1] повертає 28. Перше значення — це день тижня першого дня цього місяця.

Використовуйте calendar.LocaleTextCalendar або calendar.LocaleHTMLCalendar та передайте локаль, наприклад, «fr_FR». Відформатований місяць потім друкує назви днів тижня та місяців цією мовою, за умови, що локаль встановлено в операційній системі.

Згенеруйте розмітку за допомогою HTMLCalendar().formatmonth(2025, 1), потім відкрийте файл у режимі запису та викличте write() з цим рядком. Збереження його з розширенням .html дозволить будь-якому браузеру відображати стилізований календар.

За замовчуванням тиждень починається з Monday, дотримуючись європейської конвенції. Викличте calendar.setfirstweekday(calendar.SUNDAY) або передайте константу, таку як calendar.SUNDAY, до TextCalendar, щоб тиждень починався з іншого дня.

Конвеєри даних використовують функції календаря для отримання таких ознак, як день тижня, номер тижня та прапорці високосного року, з необроблених дат. Ці спроектовані функції календаря допомагають моделям машинного навчання фіксувати тижневі та сезонні закономірності в прогнозуванні часових рядів.

Так. GitHub Copilot та агентні помічники зі штучним інтелектом можуть писати фрагменти модулів календаря — виводити місяці, перевіряти високосні роки або створювати HTML-календар — з короткого коментаря. Revпереглянути результат, оскільки індексацію днів тижня та налаштування першого дня легко сплутати.

Підсумуйте цей пост за допомогою: