Модуль calendar

Модуль calendar позволяет напечатать себе календарик (а также содержит некоторые другие полезные функции для работы с календарями).

calendar.Calendar(firstweekday=0) - класс календаря. firstweekday - первый день недели (0 - понедельник, 6 - воскресенье).

Методы:

iterweekdays() - итератор дней недели, начиная с firstweekday.

itermonthdates(year, month) - итератор для месяца month года year. Возвращает все дни этого месяца (как объекты datetime.date), а также дни до и после этого месяца до полной недели.

itermonthdays2(year, month) - как itermonthdates, только дни возвращаются не как datetime.date объекты, а кортежи (номер дня, номер дня недели).

itermonthdays(year, month) - как itermonthdates, только дни возвращаются не как datetime.date объекты, а номера дней.

monthdatescalendar(year, month) - список недель в месяце. Неделя - список из 7 объектов datetime.date.

monthdays2calendar(year, month) - как monthdatescalendar, но объекты - кортежи (номер дня, номер дня недели).

monthdayscalendar(year, month) - как monthdatescalendar, но объекты - номера дней.


calendar.TextCalendar(firstweekday=0) - класс для генерации текстового календаря.

Методы:

formatmonth(theyear, themonth, w=0, l=0) - возвращает календарь на месяц в виде строки, с шириной колонки w и высотой l.

prmonth(theyear, themonth, w=0, l=0) - печатает календарь на месяц.

formatyear(theyear, w=2, l=1, c=6, m=3) - возвращает календарь на год; из m колонок, шириной даты w, высотой недели l и количеством пробелов между месяцами c.

pryear(theyear, w=2, l=1, c=6, m=3) - печатает календарь на год.


calendar.HTMLCalendar(firstweekday=0) - класс для генерации HTML календаря.

Методы:

formatmonth(theyear, themonth, withyear=True) - календарь на месяц в виде HTML таблицы. Если withyear True, номер года будет включен в заголовок.

formatyear(theyear, width=3) - календарь на год в виде HTML таблицы. width - количество месяцев в ряду.

formatyearpage(theyear, width=3, css="calendar.css", encoding=None) - календарь на год в виде полноценной HTML страницы, с подключением файла css (который вы можете создать сами), и в кодировке encoding.


calendar.LocaleTextCalendar(firstweekday=0, locale=None) - позволяет создать текстовый календарь с названиями на родном языке.

calendar.LocaleHTMLCalendar(firstweekday=0, locale=None) - позволяет создать HTML календарь с названиями на родном языке.

Например, вот такой календарик получился у меня:

import calendar
a = calendar.LocaleHTMLCalendar(locale='Russian_Russia')
with open('calendar.html', 'w') as g:
    print(a.formatyear(2014, width=4), file=g)
2014
Январь
ПнВтСрЧтПтСбВс
12345
6789101112
13141516171819
20212223242526
2728293031
Февраль
ПнВтСрЧтПтСбВс
12
3456789
10111213141516
17181920212223
2425262728
Март
ПнВтСрЧтПтСбВс
12
3456789
10111213141516
17181920212223
24252627282930
31
Апрель
ПнВтСрЧтПтСбВс
123456
78910111213
14151617181920
21222324252627
282930
Май
ПнВтСрЧтПтСбВс
1234
567891011
12131415161718
19202122232425
262728293031
Июнь
ПнВтСрЧтПтСбВс
1
2345678
9101112131415
16171819202122
23242526272829
30
Июль
ПнВтСрЧтПтСбВс
123456
78910111213
14151617181920
21222324252627
28293031
Август
ПнВтСрЧтПтСбВс
123
45678910
11121314151617
18192021222324
25262728293031
Сентябрь
ПнВтСрЧтПтСбВс
1234567
891011121314
15161718192021
22232425262728
2930
Октябрь
ПнВтСрЧтПтСбВс
12345
6789101112
13141516171819
20212223242526
2728293031
Ноябрь
ПнВтСрЧтПтСбВс
12
3456789
10111213141516
17181920212223
24252627282930
Декабрь
ПнВтСрЧтПтСбВс
1234567
891011121314
15161718192021
22232425262728
293031

Также модуль calendar предоставляет несколько полезных функций:

calendar.setfirstweekday(weekday) - устанавливает первый день недели (0 - понедельник, 6 - воскресенье). Также предоставлены значения calendar.MONDAY, calendar.TUESDAY, calendar.WEDNESDAY, calendar.THURSDAY, calendar.FRIDAY, calendar.SATURDAY и calendar.SUNDAY.

calendar.firstweekday() - возвращает первый день недели.

calendar.isleap(year) - является ли год високосным.

calendar.leapdays(y1, y2) - количество високосных лет в последовательности от y1 до y2.

calendar.weekday(year, month, day) - день недели для этой даты.

calendar.monthrange(year, month) - день недели первого дня месяца и количество дней в этом месяце.

Обсуждение вопросов, не связанных со статьёй (в т.ч. комментарии типа "Помогите!", ведётся на форуме pythonworld.club, а не в комментариях.

Для вставки кода на Python в комментарий заключайте его в теги <pre><code class="python3">Ваш код</code></pre>
Опечатка в тексте:
Послать сообщение об ошибке автору?