Python Модуль календаря з прикладом
⚡ Розумний підсумок
Модуль календаря в Python генерує текстові та HTML-календарі за допомогою класів TextCalendar та HTMLCalendar. Він виконує обчислення дат на основі дня, місяця та року, а також дозволяє налаштувати початковий день тижня для будь-якого місяця.
Команда модуль календаря в Python має клас календаря, який дозволяє виконувати обчислення для різних завдань на основі дати, місяця та року. Крім того, Текстовий календар та HTMLКалендар заняття в Python дозволить вам редагувати календар і використовувати його відповідно до ваших потреб. Давайте подивимося, що ми можемо з цим зробити Python календар.
Що таке модуль календаря? Python?
Команда модуль календаря є частиною Python стандартна бібліотека, тому вона доступна без будь-якої установки. Вона об'єднує кілька класів та допоміжних функцій, які створюють календарі та відповідають на поширені запитання щодо дат, такі як на який день тижня припадає дата або скільки днів містить місяць.
Модуль пропонує п'ять основних класів:
- Календар — це базовий клас, який надає дані, на основі яких будуються інші календарі.
- Текстовий календар створює календарі у звичайному текстовому форматі на місяць або на повний рік.
- HTMLКалендар створює календарі у вигляді HTML-таблиць для веб-сторінок.
- ЛокальнийТекстКалендар — це текстовий календар, який використовує назви днів і місяців вибраної локалізації.
- ЛокальHTMLКалендар — це HTML-еквівалент, який враховує вибрану локалізацію.
За замовчуванням календарний тиждень починається Monday, згідно з європейською конвенцією. Ви можете змінити перший день за допомогою константи, такої як calendar.SUNDAY, як показано в прикладах нижче.
Як роздрукувати текстовий календар у Python
Крок 1) Запустіть код.
- 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 виведе вивід.
Давайте швидко змінимо значення з неділі на четвер і перевіримо результат.
Як роздрукувати HTML-календар у Python
Крок 2) Ви також можете роздрукувати календар у форматі HTML. Ця функція корисна для розробників, які хочуть внести зміни до зовнішнього вигляду календаря.
Як перебрати дні місяця в циклі
Крок 3) Петлі за кількістю днів місяця за допомогою c.itermonthdays(2025,4); програма отримає загальну кількість днів за цей місяць.
- Коли ви виконуєте код для отримання загальної кількості днів для певного місяця, скажімо, «Квітень», ви отримаєте 30 днів у виводі, але також побачите деякі нулі разом із цими днями на початку, а іноді й в кінці.
- Нулі у виводі означають, що день тижня перекриваєтьсяping місяць, що означає, що він не належить до цього місяця.
- Ці нулі з'являються у виводі, тому що у вашому коді ви згадали день (четвер). Тож, коли ви викликаєте функцію "c.itermonthdays", вона починає рахувати дні з четверга, а ваш четвер може не починатися 1 квітня – це може бути 28 або 29 березня. Тож код починає рахувати дні з 28 березня та будь-які дні після цього до 1 квітня. Ці дні вважаються нулями, і у виводі ви побачите ці нулі. Те саме стосується кінця місяця.
- Отже, за винятком дат 1–30, усі дати попереднього, а також наступного місяця відображаються у виводі як нулі.
Як отримати назви місяців та днів тижня з локальної системи
Крок 4) Ви можете отримувати дані з локальної системи, такі як місяці або дні тижня.
- Вивід показує, що ми вивели назви місяців з локальної системи. Аналогічно, ви також можете отримати назви днів тижня, як показано нижче.
- Вихідні дані залежать від локальної системи. Якщо ваша локальна система налаштована на іншу країну, вона видає вихідні дані відповідно до локальних налаштувань цієї країни. Тут у нас місяці, тому це не матиме значення, але протягом тижня чи дня це точно відрізнятиметься.
Як знайти певний день на весь рік
Крок 5) Ви можете отримати список певного дня за цілий рік. Наприклад, день аудиту припадає на кожного першого числа Monday тижня. Припустимо, ви хочете дізнатися дату першого Monday за кожен місяць. Ви можете скористатися цим кодом.
- 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. Перевірки на високосні роки корисні під час перевірки дат, планування повторюваних подій або підрахунку точної кількості днів між двома роками.








