calendar — Функции для работы с календарем
Модуль calendar позволяет выводить календари (в виде простого текста или HTML), а также предоставляет полезные функции для расчета дней. По умолчанию первым днем недели считается Понедельник (индекс 0).
import calendar
Вывод текста в консоль
Можно распечатать красивый текстовый календарь для года или месяца в духе UNIX-утилиты cal.
import calendar
# Печать календаря на конкретный месяц (Год, Месяц)
calendar.prmonth(2024, 2)
# Возвращает:
# February 2024
# Mo Tu We Th Fr Sa Su
# 1 2 3 4
# 5 6 7 8 9 10 11
# ...
# Печать всего года
print(calendar.calendar(2024))
Расчеты и високосные годы
Определение високосного года — это не всегда очевидная математическая операция. Модуль делает это безошибочно.
import calendar
# Это високосный год?
print(calendar.isleap(2024)) # True
# Сколько раз был 29 февраля с 2000 до 2025?
print(calendar.leapdays(2000, 2025))
# В какой день недели была дата? (Возвращает от 0-ПН до 6-ВС)
day_index = calendar.weekday(2024, 12, 31)
print(day_index) # 1 (Вторник)
# Сколько дней в месяце?
# Вернет (День_недели_1_числа, Всего_дней_в_месяце)
print(calendar.monthrange(2024, 2)) # (3, 29)
Полный справочник API (API Reference)
Базовые функции
| Функция | Описание |
|---|---|
calendar.isleap(year) |
Возвращает True, если год year високосный. |
calendar.leapdays(y1, y2) |
Возвращает количество високосных годов в заданном диапазоне (не включая y2). |
calendar.weekday(y, m, d) |
Возвращает индекс дня недели (0=ПН, 6=ВС) для даты. |
calendar.monthrange(y, m) |
Возвращает кортеж из двух чисел: день недели 1-го числа и количество дней в указанном месяце. |
ООП и HTML Классы
Если вам нужен календарь для веб-сайта на Django или Flask, используйте класс HTMLCalendar!
| Класс | Описание |
|---|---|
calendar.Calendar(firstweekday=0) |
Главный класс-итератор. Позволяет перебирать дни месяца. |
calendar.TextCalendar(firstweekday=0) |
Класс для генерации строковых ASCII календарей. |
calendar.HTMLCalendar(firstweekday=0) |
Удобно! Класс для автоматической генерации HTML-таблиц (тэги <table>, <tr>, <td>) для веб-сайтов. |