Документация Python неофициальный перевод

calendar.md

544 строк · 37.1 КБ · обычная страница · сырой текст · скачать

1> **Источник:** https://python-all.ru/3.14/library/calendar.html2>3> «Документация Python на русском» – неофициальный перевод официальной документации Python: версии от 2.6 до 3.16, полнотекстовый поиск, английский оригинал рядом с переводом. Эта Markdown-версия страницы предназначена для работы с LLM: вставьте её в ChatGPT, Claude или Cursor.45---67# `calendar` – Общие функции работы с календарём89**Исходный код:** [Lib/calendar.py](https://python-all.ru/src/3.14/Lib/calendar.py)1011---1213Этот модуль позволяет выводить календари, как программа Unix **cal**, и предоставляет дополнительные полезные функции, связанные с календарём. По умолчанию в этих календарях первый день недели – понедельник, а последний – воскресенье (европейская конвенция). Используйте [`setfirstweekday()`](https://python-all.ru/3.14/library/calendar.html#calendar.setfirstweekday), чтобы установить первый день недели на воскресенье (6) или любой другой день недели. Параметры, задающие даты, передаются в виде целых чисел. За дополнительными возможностями обращайтесь также к модулям [`datetime`](https://python-all.ru/3.14/library/datetime.html#module-datetime) и [`time`](https://python-all.ru/3.14/library/time.html#module-time).1415Функции и классы, определённые в этом модуле, используют идеализированный календарь – текущий григорианский календарь, неограниченно расширенный в обоих направлениях. Это соответствует определению «пролептического григорианского» календаря из книги Дершовица и Рейнгольда «Calendrical Calculations», где он является базовым для всех вычислений. Нулевые и отрицательные годы интерпретируются в соответствии со стандартом ISO 8601. Год 0 соответствует 1 году до н.э., год -1 – 2 году до н.э. и так далее.1617#### `class calendar.Calendar(firstweekday=0)`1819Создаёт объект `Calendar`. *firstweekday* – целое число, задающее первый день недели. [`MONDAY`](https://python-all.ru/3.14/library/calendar.html#calendar.MONDAY) равно `0` (по умолчанию), [`SUNDAY`](https://python-all.ru/3.14/library/calendar.html#calendar.SUNDAY) – `6`.2021Объект `Calendar` предоставляет несколько методов, которые можно использовать для подготовки данных календаря к форматированию. Этот класс сам не выполняет форматирование – это задача подклассов.2223Экземпляры `Calendar` имеют следующие методы и атрибуты:2425#### `firstweekday`2627Первый день недели в виде целого числа (0–6).2829Это свойство также можно установить и прочитать с помощью [`setfirstweekday()`](https://python-all.ru/3.14/library/calendar.html#calendar.Calendar.setfirstweekday) и [`getfirstweekday()`](https://python-all.ru/3.14/library/calendar.html#calendar.Calendar.getfirstweekday) соответственно.3031#### `getfirstweekday()`3233Возвращает [`int`](https://python-all.ru/3.14/library/functions.html#int) для текущего первого дня недели (0–6).3435Идентично чтению свойства [`firstweekday`](https://python-all.ru/3.14/library/calendar.html#calendar.Calendar.firstweekday).3637#### `setfirstweekday(firstweekday)`3839Устанавливает первый день недели равным *firstweekday*, переданному в виде [`int`](https://python-all.ru/3.14/library/functions.html#int) (0–6).4041Идентично установке свойства [`firstweekday`](https://python-all.ru/3.14/library/calendar.html#calendar.Calendar.firstweekday).4243#### `iterweekdays()`4445Возвращает итератор по номерам дней недели, которые будут использоваться для одной недели. Первое значение из итератора будет таким же, как значение свойства [`firstweekday`](https://python-all.ru/3.14/library/calendar.html#calendar.Calendar.firstweekday).4647#### `itermonthdates(year, month)`4849Возвращает итератор для месяца *month* (1–12) года *year*. Этот итератор вернёт все дни (в виде объектов [`datetime.date`](https://python-all.ru/3.14/library/datetime.html#datetime.date)) за месяц, а также все дни до начала месяца или после его окончания, необходимые для получения полной недели.5051#### `itermonthdays(year, month)`5253Возвращает итератор для месяца *month* года *year*, аналогично [`itermonthdates()`](https://python-all.ru/3.14/library/calendar.html#calendar.Calendar.itermonthdates), но без ограничения по диапазону [`datetime.date`](https://python-all.ru/3.14/library/datetime.html#datetime.date). Возвращаемые дни – просто номера дней месяца. Для дней за пределами указанного месяца номер дня равен `0`.5455#### `itermonthdays2(year, month)`5657Возвращает итератор для месяца *month* года *year*, аналогично [`itermonthdates()`](https://python-all.ru/3.14/library/calendar.html#calendar.Calendar.itermonthdates), но без ограничения по диапазону [`datetime.date`](https://python-all.ru/3.14/library/datetime.html#datetime.date). Возвращаемые дни будут кортежами из номера дня месяца и номера дня недели.5859#### `itermonthdays3(year, month)`6061Возвращает итератор для месяца *month* года *year*, аналогично [`itermonthdates()`](https://python-all.ru/3.14/library/calendar.html#calendar.Calendar.itermonthdates), но без ограничения по диапазону [`datetime.date`](https://python-all.ru/3.14/library/datetime.html#datetime.date). Возвращаемые дни будут кортежами из года, месяца и номера дня месяца.6263Добавлено в версии 3.7.6465#### `itermonthdays4(year, month)`6667Возвращает итератор для месяца *month* года *year*, аналогично [`itermonthdates()`](https://python-all.ru/3.14/library/calendar.html#calendar.Calendar.itermonthdates), но без ограничения по диапазону [`datetime.date`](https://python-all.ru/3.14/library/datetime.html#datetime.date). Возвращаемые дни будут кортежами из года, месяца, номера дня месяца и номера дня недели.6869Добавлено в версии 3.7.7071#### `monthdatescalendar(year, month)`7273Возвращает список недель в месяце *month* года *year* в виде полных недель. Каждая неделя – список из семи объектов [`datetime.date`](https://python-all.ru/3.14/library/datetime.html#datetime.date).7475#### `monthdays2calendar(year, month)`7677Возвращает список недель в месяце *month* года *year* в виде полных недель. Каждая неделя – это список из семи кортежей с номером дня и номером дня недели.7879#### `monthdayscalendar(year, month)`8081Возвращает список недель в месяце *month* года *year* в виде полных недель. Каждая неделя – это список из семи номеров дней.8283#### `yeardatescalendar(year, width=3)`8485Возвращает данные для указанного года, готовые к форматированию. Возвращаемое значение – это список строк месяцев. Каждая строка месяца содержит до *width* месяцев (по умолчанию 3). Каждый месяц содержит от 4 до 6 недель, а каждая неделя – от 1 до 7 дней. Дни представлены объектами [`datetime.date`](https://python-all.ru/3.14/library/datetime.html#datetime.date).8687#### `yeardays2calendar(year, width=3)`8889Возвращает данные для указанного года, готовые к форматированию (аналогично [`yeardatescalendar()`](https://python-all.ru/3.14/library/calendar.html#calendar.Calendar.yeardatescalendar)). Записи в списках недель – это кортежи из номера дня и номера дня недели. Номера дней за пределами этого месяца равны нулю.9091#### `yeardayscalendar(year, width=3)`9293Возвращает данные для указанного года, готовые к форматированию (аналогично [`yeardatescalendar()`](https://python-all.ru/3.14/library/calendar.html#calendar.Calendar.yeardatescalendar)). Записи в списках недель – это номера дней. Номера дней за пределами этого месяца равны нулю.9495#### `class calendar.TextCalendar(firstweekday=0)`9697Этот класс можно использовать для создания текстовых календарей.9899Экземпляры `TextCalendar` имеют следующие методы:100101#### `formatday(theday, weekday, width)`102103Возвращает строку, представляющую отдельный день, отформатированный с указанной *width*. Если *theday* равно `0`, возвращается строка из пробелов указанной ширины, обозначающая пустой день. Параметр *weekday* не используется.104105#### `formatweek(theweek, w=0)`106107Возвращает одну неделю в виде строки без перевода строки. Если указан параметр *w*, он задаёт ширину столбцов с датами, которые центрируются. Зависит от первого дня недели, указанного в конструкторе или заданного методом [`setfirstweekday()`](https://python-all.ru/3.14/library/calendar.html#calendar.setfirstweekday).108109#### `formatweekday(weekday, width)`110111Возвращает строку с названием одного дня недели, отформатированную до указанной *width*. Параметр *weekday* – это целое число, представляющее день недели, где `0` – понедельник, а `6` – воскресенье.112113#### `formatweekheader(width)`114115Возвращает строку, содержащую заголовок с названиями дней недели, отформатированный с указанной *width* для каждого столбца. Названия зависят от настроек локали и дополняются пробелами до указанной ширины.116117#### `formatmonth(theyear, themonth, w=0, l=0)`118119Возвращает календарь месяца в виде многострочной строки. Если указан параметр *w*, он задаёт ширину столбцов с датами, которые центрируются. Если указан параметр *l*, он задаёт количество строк, которое будет занимать каждая неделя. Зависит от первого дня недели, указанного в конструкторе или заданного методом [`setfirstweekday()`](https://python-all.ru/3.14/library/calendar.html#calendar.setfirstweekday).120121#### `formatmonthname(theyear, themonth, width=0, withyear=True)`122123Возвращает строку с названием месяца, центрированным в пределах указанной *width*. Если *withyear* равно `True`, в вывод включается год. Параметры *theyear* и *themonth* задают соответственно год и месяц для форматирования названия.124125#### `prmonth(theyear, themonth, w=0, l=0)`126127Печатает календарь месяца, возвращаемый функцией [`formatmonth()`](https://python-all.ru/3.14/library/calendar.html#calendar.TextCalendar.formatmonth).128129#### `formatyear(theyear, w=2, l=1, c=6, m=3)`130131Возвращает календарь на весь год с *m* столбцами в виде многострочной строки. Необязательные параметры *w*, *l* и *c* задают ширину столбца даты, количество строк на неделю и количество пробелов между столбцами месяцев соответственно. Зависит от первого дня недели, указанного в конструкторе или заданного методом [`setfirstweekday()`](https://python-all.ru/3.14/library/calendar.html#calendar.setfirstweekday). Самый ранний год, для которого можно сгенерировать календарь, зависит от платформы.132133#### `pryear(theyear, w=2, l=1, c=6, m=3)`134135Печатает календарь на весь год, возвращаемый функцией [`formatyear()`](https://python-all.ru/3.14/library/calendar.html#calendar.TextCalendar.formatyear).136137#### `class calendar.HTMLCalendar(firstweekday=0)`138139Этот класс можно использовать для создания HTML-календарей.140141Экземпляры `HTMLCalendar` имеют следующие методы:142143#### `formatmonth(theyear, themonth, withyear=True)`144145Возвращает календарь месяца в виде HTML-таблицы. Если *withyear* равен true, год будет включен в заголовок, иначе будет использовано только название месяца.146147#### `formatyear(theyear, width=3)`148149Возвращает календарь года в виде HTML-таблицы. *width* (по умолчанию 3) задает количество месяцев в строке.150151#### `formatyearpage(theyear, width=3, css='calendar.css', encoding=None)`152153Возвращает календарь года в виде полной HTML-страницы. *width* (по умолчанию 3) задает количество месяцев в строке. *css* – это имя используемой каскадной таблицы стилей. [`None`](https://python-all.ru/3.14/library/constants.html#None) можно передать, если таблица стилей не нужна. *encoding* задает кодировку для вывода (по умолчанию используется системная кодировка).154155#### `formatmonthname(theyear, themonth, withyear=True)`156157Возвращает название месяца в виде строки HTML-таблицы. Если *withyear* равен true, год будет включен в строку, иначе будет использовано только название месяца.158159`HTMLCalendar` имеет следующие атрибуты, которые можно переопределить для настройки CSS-классов, используемых календарем:160161#### `cssclasses`162163Список CSS-классов, используемых для каждого дня недели. Список классов по умолчанию:164165```python166cssclasses = ["mon", "tue", "wed", "thu", "fri", "sat", "sun"]167```168169для каждого дня можно добавить больше стилей:170171```python172cssclasses = ["mon text-bold", "tue", "wed", "thu", "fri", "sat", "sun red"]173```174175Обратите внимание, что длина этого списка должна быть равна семи элементам.176177#### `cssclass_noday`178179CSS-класс для дня недели, приходящегося на предыдущий или следующий месяц.180181Добавлено в версии 3.7.182183#### `cssclasses_weekday_head`184185Список CSS-классов, используемых для названий дней недели в строке заголовка. По умолчанию такой же, как [`cssclasses`](https://python-all.ru/3.14/library/calendar.html#calendar.HTMLCalendar.cssclasses).186187Добавлено в версии 3.7.188189#### `cssclass_month_head`190191CSS-класс заголовка месяца (используется [`formatmonthname()`](https://python-all.ru/3.14/library/calendar.html#calendar.HTMLCalendar.formatmonthname)). Значение по умолчанию – `"month"`.192193Добавлено в версии 3.7.194195#### `cssclass_month`196197CSS-класс для таблицы целого месяца (используется [`formatmonth()`](https://python-all.ru/3.14/library/calendar.html#calendar.HTMLCalendar.formatmonth)). Значение по умолчанию – `"month"`.198199Добавлено в версии 3.7.200201#### `cssclass_year`202203CSS-класс для таблицы таблиц всего года (используется [`formatyear()`](https://python-all.ru/3.14/library/calendar.html#calendar.HTMLCalendar.formatyear)). Значение по умолчанию – `"year"`.204205Добавлено в версии 3.7.206207#### `cssclass_year_head`208209CSS-класс для заголовка таблицы всего года (используется [`formatyear()`](https://python-all.ru/3.14/library/calendar.html#calendar.HTMLCalendar.formatyear)). Значение по умолчанию – `"year"`.210211Добавлено в версии 3.7.212213Обратите внимание, что, хотя названия описанных выше атрибутов классов стоят в единственном числе (например, `cssclass_month` `cssclass_noday`), можно заменить одиночный CSS-класс на список CSS-классов, разделенных пробелами, например:214215```python216"text-bold text-red"217```218219Вот пример того, как можно настроить `HTMLCalendar`:220221```python222class CustomHTMLCal(calendar.HTMLCalendar):223    cssclasses = [style + " text-nowrap" for style in224                  calendar.HTMLCalendar.cssclasses]225    cssclass_month_head = "text-center month-head"226    cssclass_month = "text-center month"227    cssclass_year = "text-italic lead"228```229230#### `class calendar.LocaleTextCalendar(firstweekday=0, locale=None)`231232Этот подкласс [`TextCalendar`](https://python-all.ru/3.14/library/calendar.html#calendar.TextCalendar) может принимать название локали в конструкторе и будет возвращать названия месяцев и дней недели в указанной локали.233234#### `class calendar.LocaleHTMLCalendar(firstweekday=0, locale=None)`235236Этот подкласс [`HTMLCalendar`](https://python-all.ru/3.14/library/calendar.html#calendar.HTMLCalendar) может принимать название локали в конструкторе и будет возвращать названия месяцев и дней недели в указанной локали.237238> **Примечание**239>240> Конструктор, методы `formatweekday()` и `formatmonthname()` этих двух классов временно изменяют локаль `LC_TIME` на заданную *locale*. Поскольку текущая локаль – это настройка всего процесса, они не потокобезопасны.241242Для простых текстовых календарей этот модуль предоставляет следующие функции.243244#### `calendar.setfirstweekday(weekday)`245246Устанавливает день недели (`0` – понедельник, `6` – воскресенье), с которого начинается каждая неделя. Для удобства предоставлены значения [`MONDAY`](https://python-all.ru/3.14/library/calendar.html#calendar.MONDAY), [`TUESDAY`](https://python-all.ru/3.14/library/calendar.html#calendar.TUESDAY), [`WEDNESDAY`](https://python-all.ru/3.14/library/calendar.html#calendar.WEDNESDAY), [`THURSDAY`](https://python-all.ru/3.14/library/calendar.html#calendar.THURSDAY), [`FRIDAY`](https://python-all.ru/3.14/library/calendar.html#calendar.FRIDAY), [`SATURDAY`](https://python-all.ru/3.14/library/calendar.html#calendar.SATURDAY) и [`SUNDAY`](https://python-all.ru/3.14/library/calendar.html#calendar.SUNDAY). Например, чтобы первым днём недели было воскресенье:247248```python249import calendar250calendar.setfirstweekday(calendar.SUNDAY)251```252253#### `calendar.firstweekday()`254255Возвращает текущую настройку дня недели, с которого начинается каждая неделя.256257#### `calendar.isleap(year)`258259Возвращает [`True`](https://python-all.ru/3.14/library/constants.html#True), если *year* – високосный год, иначе [`False`](https://python-all.ru/3.14/library/constants.html#False).260261#### `calendar.leapdays(y1, y2)`262263Возвращает количество високосных лет в диапазоне от *y1* до *y2* (не включая), где *y1* и *y2* – это годы.264265Эта функция работает для диапазонов, охватывающих смену столетий.266267#### `calendar.weekday(year, month, day)`268269Возвращает день недели (`0` – понедельник) для *year* (`1970`–…), *month* (`1``12`), *day* (`1``31`).270271#### `calendar.weekheader(n)`272273Возвращает заголовок, содержащий сокращённые названия дней недели. *n* задаёт ширину в символах для одного дня недели.274275#### `calendar.monthrange(year, month)`276277Возвращает день недели первого дня месяца и количество дней в месяце для указанных *year* и *month*.278279#### `calendar.monthcalendar(year, month)`280281Возвращает матрицу, представляющую календарь на месяц. Каждая строка представляет неделю; дни вне месяца представлены нулями. Каждая неделя начинается с понедельника, если не задано иное через [`setfirstweekday()`](https://python-all.ru/3.14/library/calendar.html#calendar.setfirstweekday).282283#### `calendar.prmonth(theyear, themonth, w=0, l=0)`284285Выводит календарь на месяц, возвращаемый функцией [`month()`](https://python-all.ru/3.14/library/calendar.html#calendar.month).286287#### `calendar.month(theyear, themonth, w=0, l=0)`288289Возвращает календарь на месяц в виде многострочной строки с помощью [`formatmonth()`](https://python-all.ru/3.14/library/calendar.html#calendar.TextCalendar.formatmonth) класса [`TextCalendar`](https://python-all.ru/3.14/library/calendar.html#calendar.TextCalendar).290291#### `calendar.prcal(year, w=0, l=0, c=6, m=3)`292293Выводит календарь на целый год, возвращаемый функцией [`calendar()`](https://python-all.ru/3.14/library/calendar.html#module-calendar).294295#### `calendar.calendar(year, w=2, l=1, c=6, m=3)`296297Возвращает календарь на целый год в три колонки в виде многострочной строки с помощью [`formatyear()`](https://python-all.ru/3.14/library/calendar.html#calendar.TextCalendar.formatyear) класса [`TextCalendar`](https://python-all.ru/3.14/library/calendar.html#calendar.TextCalendar).298299#### `calendar.timegm(tuple)`300301Не связанная напрямую, но полезная функция, которая принимает временной кортеж, такой как возвращается функцией [`gmtime()`](https://python-all.ru/3.14/library/time.html#time.gmtime) в модуле [`time`](https://python-all.ru/3.14/library/time.html#module-time), и возвращает соответствующее значение временной метки Unix, предполагая эпоху 1970 года и кодировку POSIX. На самом деле, `time.gmtime()` и `timegm()` являются обратными друг другу.302303Модуль `calendar` экспортирует следующие атрибуты данных:304305#### `calendar.day_name`306307Последовательность, представляющая дни недели в текущей локали, где понедельник – день номер 0.308309```python310>>> import calendar311>>> list(calendar.day_name)312['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday']313```314315#### `calendar.day_abbr`316317Последовательность, представляющая сокращённые названия дней недели в текущей локали, где Mon – день номер 0.318319```python320>>> import calendar321>>> list(calendar.day_abbr)322['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']323```324325#### `calendar.MONDAY`326327#### `calendar.TUESDAY`328329#### `calendar.WEDNESDAY`330331#### `calendar.THURSDAY`332333#### `calendar.FRIDAY`334335#### `calendar.SATURDAY`336337#### `calendar.SUNDAY`338339Псевдонимы для дней недели, где `MONDAY` – это `0`, а `SUNDAY` – это `6`.340341Добавлено в версии 3.12.342343#### `class calendar.Day`344345Перечисление, определяющее дни недели как целочисленные константы. Его члены экспортируются в пространство имён модуля как [`MONDAY`](https://python-all.ru/3.14/library/calendar.html#calendar.MONDAY) и [`SUNDAY`](https://python-all.ru/3.14/library/calendar.html#calendar.SUNDAY).346347Добавлено в версии 3.12.348349#### `calendar.month_name`350351Последовательность, представляющая месяцы года в текущей локали. Следует обычному соглашению, согласно которому январь – месяц номер 1, поэтому её длина равна 13, а `month_name[0]` – пустая строка.352353```python354>>> import calendar355>>> list(calendar.month_name)356['', 'January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']357```358359#### `calendar.month_abbr`360361Последовательность, представляющая сокращённые названия месяцев года в текущей локали. Следует обычному соглашению, согласно которому январь – месяц номер 1, поэтому её длина равна 13, а `month_abbr[0]` – пустая строка.362363```python364>>> import calendar365>>> list(calendar.month_abbr)366['', 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']367```368369#### `calendar.JANUARY`370371#### `calendar.FEBRUARY`372373#### `calendar.MARCH`374375#### `calendar.APRIL`376377#### `calendar.MAY`378379#### `calendar.JUNE`380381#### `calendar.JULY`382383#### `calendar.AUGUST`384385#### `calendar.SEPTEMBER`386387#### `calendar.OCTOBER`388389#### `calendar.NOVEMBER`390391#### `calendar.DECEMBER`392393Псевдонимы для месяцев года, где `JANUARY` – это `1`, а `DECEMBER` – это `12`.394395Добавлено в версии 3.12.396397#### `class calendar.Month`398399Перечисление, определяющее месяцы года как целочисленные константы. Его члены экспортируются в пространство имён модуля как [`JANUARY`](https://python-all.ru/3.14/library/calendar.html#calendar.JANUARY) и [`DECEMBER`](https://python-all.ru/3.14/library/calendar.html#calendar.DECEMBER).400401Добавлено в версии 3.12.402403Модуль `calendar` определяет следующие исключения:404405#### `exception calendar.IllegalMonthError(month)`406407Подкласс [`ValueError`](https://python-all.ru/3.14/library/exceptions.html#ValueError) и [`IndexError`](https://python-all.ru/3.14/library/exceptions.html#IndexError), возбуждается, когда указанный номер месяца выходит за пределы диапазона 1–12 (включительно).408409Изменено в версии 3.12: `IllegalMonthError` теперь также является подклассом [`ValueError`](https://python-all.ru/3.14/library/exceptions.html#ValueError). В новом коде следует избегать перехвата [`IndexError`](https://python-all.ru/3.14/library/exceptions.html#IndexError).410411#### `month`412413Неверный номер месяца.414415#### `exception calendar.IllegalWeekdayError(weekday)`416417Подкласс [`ValueError`](https://python-all.ru/3.14/library/exceptions.html#ValueError), возбуждается, когда указанный номер дня недели выходит за пределы диапазона 0–6 (включительно).418419#### `weekday`420421Неверный номер дня недели.422423> **См. также**424>425> **Модуль [`datetime`](https://python-all.ru/3.14/library/datetime.html#module-datetime)**426>427> Объектно-ориентированный интерфейс для работы с датами и временем, предоставляющий функциональность, аналогичную модулю [`time`](https://python-all.ru/3.14/library/time.html#module-time).428>429> **Модуль [`time`](https://python-all.ru/3.14/library/time.html#module-time)**430>431> Низкоуровневые функции для работы со временем.432433## Использование командной строки434435Добавлено в версии 2.5.436437Модуль `calendar` можно запустить как скрипт из командной строки для интерактивного вывода календаря.438439```shell440python -m calendar [-h] [-L LOCALE] [-e ENCODING] [-t {text,html}]441                   [-w WIDTH] [-l LINES] [-s SPACING] [-m MONTHS] [-c CSS]442                   [-f FIRST_WEEKDAY] [year] [month]443```444445Например, чтобы вывести календарь на 2000 год:446447```console448$ python -m calendar 2000449                                  2000450451      January                   February                   March452Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su453                1  2          1  2  3  4  5  6             1  2  3  4  5454 3  4  5  6  7  8  9       7  8  9 10 11 12 13       6  7  8  9 10 11 1245510 11 12 13 14 15 16      14 15 16 17 18 19 20      13 14 15 16 17 18 1945617 18 19 20 21 22 23      21 22 23 24 25 26 27      20 21 22 23 24 25 2645724 25 26 27 28 29 30      28 29                     27 28 29 30 3145831459460       April                      May                       June461Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su462                1  2       1  2  3  4  5  6  7                1  2  3  4463 3  4  5  6  7  8  9       8  9 10 11 12 13 14       5  6  7  8  9 10 1146410 11 12 13 14 15 16      15 16 17 18 19 20 21      12 13 14 15 16 17 1846517 18 19 20 21 22 23      22 23 24 25 26 27 28      19 20 21 22 23 24 2546624 25 26 27 28 29 30      29 30 31                  26 27 28 29 30467468        July                     August                  September469Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su470                1  2          1  2  3  4  5  6                   1  2  3471 3  4  5  6  7  8  9       7  8  9 10 11 12 13       4  5  6  7  8  9 1047210 11 12 13 14 15 16      14 15 16 17 18 19 20      11 12 13 14 15 16 1747317 18 19 20 21 22 23      21 22 23 24 25 26 27      18 19 20 21 22 23 2447424 25 26 27 28 29 30      28 29 30 31               25 26 27 28 29 3047531476477      October                   November                  December478Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su479                   1             1  2  3  4  5                   1  2  3480 2  3  4  5  6  7  8       6  7  8  9 10 11 12       4  5  6  7  8  9 10481 9 10 11 12 13 14 15      13 14 15 16 17 18 19      11 12 13 14 15 16 1748216 17 18 19 20 21 22      20 21 22 23 24 25 26      18 19 20 21 22 23 2448323 24 25 26 27 28 29      27 28 29 30               25 26 27 28 29 30 3148430 31485```486487Принимаются следующие опции:488489#### `--help, -h`490491Показать справку и выйти.492493#### `--locale LOCALE, -L LOCALE`494495Языковой стандарт (локаль), используемый для названий месяцев и дней недели. По умолчанию – английский.496497#### `--encoding ENCODING, -e ENCODING`498499Кодировка, используемая для вывода. [`--encoding`](https://python-all.ru/3.14/library/calendar.html#cmdoption-calendar-encoding) обязательна, если задан [`--locale`](https://python-all.ru/3.14/library/calendar.html#cmdoption-calendar-locale).500501#### `--type {text,html}, -t {text,html}`502503Вывод календаря в терминал в виде текста или HTML-документа.504505#### `--first-weekday FIRST_WEEKDAY, -f FIRST_WEEKDAY`506507День недели, с которого начинается каждая неделя. Должен быть числом от 0 (понедельник) до 6 (воскресенье). По умолчанию – 0.508509Добавлено в версии 3.13.510511#### `year`512513Год, для которого выводится календарь. По умолчанию – текущий год.514515#### `month`516517Месяц указанного [`year`](https://python-all.ru/3.14/library/calendar.html#cmdoption-calendar-arg-year), для которого выводится календарь. Должен быть числом от 1 до 12 и может использоваться только в текстовом режиме. По умолчанию выводится календарь на весь год.518519*Опции текстового режима:*520521#### `--width WIDTH, -w WIDTH`522523Ширина столбца с датой в символах терминала. Дата выводится по центру столбца. Любое значение меньше 2 игнорируется. По умолчанию – 2.524525#### `--lines LINES, -l LINES`526527Количество строк для каждой недели в рядах терминала. Дата выводится с выравниванием по верхнему краю. Любое значение меньше 1 игнорируется. По умолчанию – 1.528529#### `--spacing SPACING, -s SPACING`530531Расстояние между месяцами в столбцах. Любое значение меньше 2 игнорируется. По умолчанию: 6.532533#### `--months MONTHS, -m MONTHS`534535Количество месяцев, выводимых в одной строке. По умолчанию: 3.536537Изменено в версии 3.14: По умолчанию сегодняшняя дата выделяется цветом; её можно [настроить с помощью переменных окружения](https://python-all.ru/3.14/using/cmdline.html#using-on-controlling-color).538539*Параметры режима HTML:*540541#### `--css CSS, -c CSS`542543Путь к CSS-таблице стилей, используемой для календаря. Путь должен быть либо относительным по отношению к генерируемому HTML, либо абсолютным HTTP- или `file:///` URL.544