На этом шаге мы рассмотрим еще несколько функций этого модуля.
Модуль calendar предоставляет еще и несколько функций, которые позволяют вывести текстовый календарь без создания объекта соответствующего класса, а также возвращают до полнительную информацию о дате:
>>> import calendar >>> calendar.firstweekday () # По умолчанию 0 0 >>> calendar.setfirstweekday (6) # Изменяем значение >>> calendar.firstweekday () # Проверяем установку 6
>>> calendar.setfirstweekday(0) >>> print (calendar.month (2018, 4)) # Апрель 2018 года April 2018 Mo Tu We Th Fr Sa Su 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
>>> calendar.prmonth (2018, 4) # Апрель 2018 года April 2018 Mo Tu We Th Fr Sa Su 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
>>> calendar.monthcalendar (2018, 4)
[[0, 0, 0, 0, 0, 0, 1], [2, 3, 4, 5, 6, 7, 8], [9, 10, 11, 12, 13, 14, 15],
[16, 17, 18, 19, 20, 21, 22], [23, 24, 25, 26, 27, 28, 29],
[30, 0, 0, 0, 0, 0, 0]]
>>> print (calendar.monthrange (2018, 4)) (6, 30) >>> # Апрель 2018 года начинается с воскресенья (6) и включает 30 дней
>>> print (calendar.calendar (2018, m=4, c=2) ) 2018 January February March April Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su 1 2 3 4 5 6 7 1 2 3 4 1 2 3 4 1 8 9 10 11 12 13 14 5 6 7 8 9 10 11 5 6 7 8 9 10 11 2 3 4 5 6 7 8 15 16 17 18 19 20 21 12 13 14 15 16 17 18 12 13 14 15 16 17 18 9 10 11 12 13 14 15 22 23 24 25 26 27 28 19 20 21 22 23 24 25 19 20 21 22 23 24 25 16 17 18 19 20 21 22 29 30 31 26 27 28 26 27 28 29 30 31 23 24 25 26 27 28 29 30 May June July August Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su 1 2 3 4 5 6 1 2 3 1 1 2 3 4 5 7 8 9 10 11 12 13 4 5 6 7 8 9 10 2 3 4 5 6 7 8 6 7 8 9 10 11 12 14 15 16 17 18 19 20 11 12 13 14 15 16 17 9 10 11 12 13 14 15 13 14 15 16 17 18 19 21 22 23 24 25 26 27 18 19 20 21 22 23 24 16 17 18 19 20 21 22 20 21 22 23 24 25 26 28 29 30 31 25 26 27 28 29 30 23 24 25 26 27 28 29 27 28 29 30 31 30 31 September October November December Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su 1 2 1 2 3 4 5 6 7 1 2 3 4 1 2 3 4 5 6 7 8 9 8 9 10 11 12 13 14 5 6 7 8 9 10 11 3 4 5 6 7 8 9 10 11 12 13 14 15 16 15 16 17 18 19 20 21 12 13 14 15 16 17 18 10 11 12 13 14 15 16 17 18 19 20 21 22 23 22 23 24 25 26 27 28 19 20 21 22 23 24 25 17 18 19 20 21 22 23 24 25 26 27 28 29 30 29 30 31 26 27 28 29 30 24 25 26 27 28 29 30 31
>>> calendar.prcal (2018, 2, 1, 4, 2)
2018
January February
Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su
1 2 3 4 5 6 7 1 2 3 4
8 9 10 11 12 13 14 5 6 7 8 9 10 11
15 16 17 18 19 20 21 12 13 14 15 16 17 18
22 23 24 25 26 27 28 19 20 21 22 23 24 25
29 30 31 26 27 28
March April
Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su
1 2 3 4 1
5 6 7 8 9 10 11 2 3 4 5 6 7 8
12 13 14 15 16 17 18 9 10 11 12 13 14 15
19 20 21 22 23 24 25 16 17 18 19 20 21 22
26 27 28 29 30 31 23 24 25 26 27 28 29
30
May June
Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su
1 2 3 4 5 6 1 2 3
7 8 9 10 11 12 13 4 5 6 7 8 9 10
14 15 16 17 18 19 20 11 12 13 14 15 16 17
21 22 23 24 25 26 27 18 19 20 21 22 23 24
28 29 30 31 25 26 27 28 29 30
July August
Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su
1 1 2 3 4 5
2 3 4 5 6 7 8 6 7 8 9 10 11 12
9 10 11 12 13 14 15 13 14 15 16 17 18 19
16 17 18 19 20 21 22 20 21 22 23 24 25 26
23 24 25 26 27 28 29 27 28 29 30 31
30 31
September October
Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su
1 2 1 2 3 4 5 6 7
3 4 5 6 7 8 9 8 9 10 11 12 13 14
10 11 12 13 14 15 16 15 16 17 18 19 20 21
17 18 19 20 21 22 23 22 23 24 25 26 27 28
24 25 26 27 28 29 30 29 30 31
November December
Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su
1 2 3 4 1 2
5 6 7 8 9 10 11 3 4 5 6 7 8 9
12 13 14 15 16 17 18 10 11 12 13 14 15 16
19 20 21 22 23 24 25 17 18 19 20 21 22 23
26 27 28 29 30 24 25 26 27 28 29 30
31
>>> calendar.weekheader(4) 'Mon Tue Wed Thu Fri Sat Sun ' >>> calendar.weekheader(2) 'Mo Tu We Th Fr Sa Su' >>> import locale # Задаем другую локаль >>> locale.setlocale (locale.LC_ALL, "Russian_Russia.1251") 'Russian_Russia.1251' >>> calendar.weekheader(2) 'Пн Вт Ср Чт Пт Сб Вс'
>>> calendar.isleap (2015) , calendar.isleap (2012)
(False, True)
>>> calendar.leapdays (2010, 2012) # 2012 не учитывается 0 >>> calendar.leapdays(2010, 2015) # 2012 - високосный год 1 >>> calendar.leapdays(2010, 2017) # 2012 и 2016 - високосные года 2
>>> calendar.weekday(2018, 4, 7)
5
>>> import calendar, time >>> d = time.gmtime (1321954972.0) # Дата 22-11-2011 >>> d time.struct_time(tm_year=2011, tm_mon=11, tm_mday=22, tm_hour=9, tm_min=42, tm_sec=52, tm_wday=1, tm_yday=326, tm_isdst=0) >>> tuple (d) (2011, 11, 22, 9, 42, 52, 1, 326, 0) >>> calendar.timegm(d) 1321954972 >>> calendar.timegm( (2011, 11, 22, 9, 42, 52, 1, 326, 0)) 1321954972
Модуль calendar предоставляет также несколько атрибутов:
>>> [i for i in calendar.day_name] ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday']
>>> [i for i in calendar.day_abbr] ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
>>> [i for i in calendar.month_name] ['', 'January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']
>>> [i for i in calendar.month_abbr] ['', 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'] >>> import locale # Настройка локали >>> locale.setlocale(locale.LC_ALL, "Russian_Russia.1251") 'Russian_Russia.1251' >>> [i for i in calendar.day_abbr] ['Пн', 'Вт', 'Ср', 'Чт', 'Пт', 'Сб', 'Вс'] >>> [i for i in calendar.month_name] ['', 'Январь', 'Февраль', 'Март', 'Апрель', 'Май', 'Июнь', 'Июль', 'Август', 'Сентябрь', 'Октябрь', 'Ноябрь', 'Декабрь'] >>> [i for i in calendar.month_abbr] ['', 'янв', 'фев', 'мар', 'апр', 'май', 'июн', 'июл', 'авг', 'сен', 'окт', 'ноя', 'дек']
На следующем шаге мы рассмотрим измерение времени выполнения фрагментов кода.