1. calendar模块介绍
calendar 模块(日历模块)的方法都是与日历相关的,例如生成指定年份的日历、判断指定年份是否为闰年等。默认情况下,这些日历把星期一当作一周的第一天,星期天为一周的最后一天(按照欧洲惯例)。可以使用 setfirstweekday() 方法设置一周的第一天为星期天(6)或者其它任意一天。此外,calendar 模块中的 TextCalendar 和 HTMLCalendar 类可以输出指定格式的文本与 HTML 代码。
2. day_abbr属性——获取周一至周日英文缩写组成的数组
day_abbr 属性用于获取周一至周日英文缩写组成的数组。语法格式如下:
calendar.day_abbr
参数说明:
- 返回值:返回一个数组,内容为字符型周一至周日的英文缩写。
使用 day_abbr 属性获取周一至周日的英文缩写,代码如下:
import calendar # 导入日历模块
week_list = [‘星期一',’星期二',’星期三',’星期四',’星期五',’星期六',’星期日']
week_array = calendar.day_abbr # 获取周一至周日英文缩写数组
for i,v in enumerate(week_array): # 遍历周一至周日英文缩写
print(week_list[i],’的英文缩写为:',v)
3. day_name属性——获取周一至周日英文名称组成的数组
day_name 属性用于获取周一至周日英文名称组成的数组。语法格式如下:
calendar.day_name
参数说明:
- 返回值:返回一个数组,内容为字符型周一至周日的英文名称。
使用 day_name 属性获取周一至周日的英文名称,代码如下:
import calendar # 导入日历模块
week_list = [‘星期一',’星期二',’星期三',’星期四',’星期五',’星期六',’星期日']
week_array = calendar.day_name # 获取周一至周日英文名称数组
for i,v in enumerate(week_array): # 遍历周一至周日英文名称
print(week_list[i],’的英文名称为:',v)
4. month_abbr属性——获取每个月份的英文缩写组成的数组
month_abbr 属性用于获取一年中每个月份的英文缩写组成的数组。语法格式如下:decimal
calendar.month_abbr
参数说明:
- 返回值:返回一个数组,其内容为当前语言环境内一年中每个月份的英文缩写。为了遵循 1月份对应数组索引为 1,该数组中第一个元素为空字符串,数组长度为 13。
使用 month_abbr 属性获取一年中每个月份的英文缩写,代码如下:
import calendar # 导入日历模块
month_list = list(calendar.month_abbr) # 将数组转换为列表
print(list(calendar.month_abbr)) # 打印一年中每个月份的英文缩写
5. month_name属性——获取每个月份的英文 名称组成的数组
month_name 属性用于获取一年中每个月份的英文名称组成的数组。语法格式如下:
calendar.month_name
参数说明:
- 返回值:返回一个数组,其内容为当前语言环境内一年中每个月份的英文名称。为了遵循 1月份对应数组索引为 1,该数组中第一个元素为空字符串,数组长度为 13。
使用 month_name 属性获取一年中每个月份的英文名称,代码如下:
import calendar # 导入日历模块
month_list = list(calendar.month_name) # 将数组转换为列表
print(month_list) # 打印一年中每个月份的英文名称
6. calendar()方法——获取指定年份的日历
calendar() 方法用于获取指定年份的日历。语法格式如下:
calendar.calendar(year,w=2,l=1,c=6,m=3)
参数说明:
-
year :指定年份。
-
w :表示每日之间的宽度间隔,默认为 2,最小宽度为 2。
-
l :表示日期之间的行高度,默认为 1,至少占 1 行的高度。
-
c :表示月份之间的间隔宽度,默认为 6,最小宽度为 2。
-
m :表示一行显示几个月。
-
返回值:以多行字符串格式返回指定年份的日历。
使用 calendar() 方法获 2020 年的日历,代码如下:
import calendar # 导入日历模块
print(calendar.calendar(2020,w=2,l=1,c=8,m=6)) # 获取2020年日历
7. firstweekday()方法——返回当前周起始日期
firstweekday() 方法用于返回当前周起始日期。0 代表星期一、1 代表星期二……6 代表星期日。语法格式如下:
calendar.firstweekday()
参数说明:
- 返回值:默认情况下,首次载入 calendar 模块时返回 0,即星期一。
使用 firstweekday() 方法获取当前周起始日期,代码如下:
import calendar # 导入日历模块
print(‘当前周的起始日期为:',calendar.firstweekday()) # 打印当前周起始日期
8. isleap()方法——判断指定年份是否为闰年
isleap() 方法用于判断指定年份是否为闰年。语法格式如下:
calendar.isleap(year)
参数说明:
-
year :指定年份。
-
返回值:布尔值,是闰年返回 True,否则返回 False。
使用 isleap() 方法判断 2008 年、2019 年是否为闰年,代码如下:
import calendar # 导入日历模块
print(‘2008年是否为闰年:',calendar.isleap(2008)) # 判断2008年是否为闰年
print(‘2019年是否为闰年:',calendar.isleap(2019)) # 判断2019年是否为闰年
9. leapdays()方法——获取指定年份之间的闰年总数
leapdays() 方法用于获取指定年份之间的闰年总数。语法格式如下:
calendar.leapdays(y1,y2)
参数说明:
-
y1 :指定的开始年份。
-
y2 :指定的结束年份(不包括该年)。
-
返回值:返回一个整数,即返回在 y1 和 y2 年份之间的闰年总数,包括 y1,但不包括 y2。
使用 leapdays() 方法检测从 2000 年到 2020 年(不包括该年)之间的闰年个数,代码如下:
import calendar # 导入日历模块
print(calendar.leapdays(2000,2020)) # 检测从2000年到2020年(不包括该年)之间的闰年个数
10. month()方法——获取指定月份的日历
month() 方法用于获取指定月份的日历。语法格式如下:
calendar.month(year,month,w=0,l=0)
参数说明:
-
year :指定年份。
-
month :指定月份。
-
w :表示每日之间的宽度间隔,默认为 0,最小宽度为 2。
-
l :表示日期之间的行高度,默认为 0,至少占 1 行的高度。
-
返回值:指定月份的日历。
使用 month() 方法打印 2020 年 2 月份的日历,代码如下:
import calendar # 导入日历模块
print(calendar.month(2020,2)) # 打印2020年2月份的日历
11. monthcalendar()方法——获取指定年月的信息列表
monthcalendar() 方法用于获取指定年月的信息列表。语法格式如下:
calendar.monthcalendar(year,month)
参数说明:
-
year :指定年份。
-
month :指定月份。
-
返回值:返回一个列表,列表内的元素还是列表。每个子列表代表一个星期,都是从星期一到星期日 7 个元素,如果子列表中元素没有本月的对应日期,则用 0 补充。
获取 2020 年 3 月份的信息列表,代码如下:
import calendar # 导入日历模块
print(calendar.monthcalendar(2020,3)) # 获取2020年3月份的信息列表
12. monthrange()方法——获取指定月份是从星期几开始及当月的天数
monthrange() 方法用于获取指定月份的第一天是从星期几开始及当月的天数。语法格式如下:
calendar.monthrange(year,month)
参数说明:
-
year :指定年份。
-
month :指定月份。
-
返回值:返回一个包含两个整数的元组,第一个整数代表指定月份的第一天从星期几开始(0代表星期一、1 代表星期二……6 代表星期日),第二个整数代表该月一共有多少天。
使用 monthrange() 方法获取 2020 年 1 月第一天是从星期几开始及当月的天数,代码如下:
import calendar # 导入日历模块
print(calendar.monthrange(2020,1)) # 获取2020年1月第一天是从星期几开始及当月的天数
13. prcal()方法——获取指定年份的日历
prcal() 方法相当于 calendar() 方法,用于获取指定年份的日历。语法格式如下:
calendar.prcal(year,w=0,l=0,c=6,m=3)
参数说明:decimal
-
year :指定年份。
-
w :表示每日之间的宽度间隔,默认为 0,最小宽度为 2。
-
l :表示日期之间的行高度,默认为 0,至少占 1 行的高度。
-
c :表示月份之间的间隔宽度,默认为 6,最小宽度为 2。
-
m :表示一行显示几个月。
-
返回值:以多行字符串格式返回指定年份的日历。
使用 prcal() 方法获取 2020 年的日历,代码如下:
import calendar # 导入日历模块
print(calendar.prcal(2020,w=2,l=1,c=8,m=4)) # 获取2020年日历
14. prmonth()方法——获取指定月份的日历
prmonth() 方法用于获取指定月份的日历,相当于 month() 方法。语法格式如下:
calendar.prmonth(year,month,w=0,l=0)
参数说明:
-
year :指定年份。
-
month :指定月份。
-
w :表示每日之间的宽度间隔,默认为 0,最小宽度为 2。
-
l :表示日期之间的行高度,默认为 0,至少占 1 行的高度。
-
返回值:返回指定月份的日历。
使用 prmonth() 方法打印 2020 年 3 月份的日历,代码如下:
import calendar # 导入日历模块
print(calendar.prmonth(2020,3,w=5,l=1)) # 获取2020年3月份的日历
15. setf irstweekday()——设置每周的起始日期
setfirstweekday() 方法用于设置每周的起始日期,0 代表星期一、1 代表星期二……6 代表星期日。语法格式如下:
calendar.setfirstweekday(weekday)
参数说明:
- weekday :指定每周的起始日期。decimal
使用 setfirstweekday() 方法将第一个工作日设置为星期日,代码如下:
import calendar # 导入日历模块
print(‘默认返回:',calendar.firstweekday()) # 默认返回0,即星期一
calendar.setfirstweekday(6) # 将星期日设置为一周第一天
print(‘修改后:',calendar.firstweekday()) # 返回6,即星期日
16. timegm()方法——将时间元组转换为时间戳
timegm() 方法用于接收一个时间元组,然后返回该时刻的时间戳。语法格式如下:
calendar.timegm(tupletime)
参数说明:
-
tupletime :时间元组。
-
返回值:时间戳。
使用 timegm() 方法将时间元组转换为对应的时间戳,代码如下:
import calendar,time # 导入日历模块和时间模块
# 将时间元组转换为时间戳
print(‘指定时间元组对应的时间戳为:',calendar.timegm((2020,2,2,21,26,0,0,0,0)))
# 将localtime()方法获取的当前时间的时间元组转换为时间戳
print(‘当前时间元组对应的时间戳为:',calendar.timegm(time.localtime()))
17. weekday()方法——获取指定日期的星期码
weekday() 方法用于获取指定日期的星期码,通过输入的年月日获取该日期为星期几。语法格式如下:
calendar.weekday(year,month,day)
参数说明:
-
year :指定年份。
-
month :制定月份。
-
day :指定某天。
-
返回值:返回指定日期的星期码,0 代表星期一、1 代表星期二……6 代表星期日。
获取 2020 年 5 月 18 日至 20 日的星期码,代码如下:
import calendar # 导入日历模块
print(calendar.weekday(2020,5,18)) # 星期一
print(calendar.weekday(2020,5,19)) # 星期二
print(calendar.weekday(2020,5,20)) # 星期三
18. weekheader()方法——返回包含星期的英文缩写
weekheader() 方法用于返回星期一至星期日的英文缩写。语法格式如下:decimal
calendar.weekheader(n)
参数说明:
-
n :表示英文缩写所占的宽度。
-
返回值:返回星期一至星期日的英文缩写。
使用 weekheader() 方法获取星期一至星期日的英文缩写,代码如下:
import calendar # 导入日历模块
print(‘周一至周日英文缩写如下:')
print(calendar.weekheader(2))
print(calendar.weekheader(5))
print(calendar.weekheader(10))
19. Calendar类
Calendar 类用于创建一个日历对象,并设置一周的第一天为星期几。语法格式如下:
calendar.Calendar(firstweekday=0)
参数说明:
- firstweekday :表示一个整数,用于设置一周的第一天为星期几(0 表示星期一,6 表示星期日)。
使用 Calendar 类创建日历对象,然后获取一周的第一天为星期几,代码如下:
from calendar import Calendar # 导入日历模块中的Calendar类
week_list = [‘星期一',’星期二',’星期三',’星期四',’星期五',’星期六',’星期日']
calendar_obj = Calendar() # 创建默认的Calendar对象
week_index = list(calendar_obj.iterweekdays())[0]
print(‘在默认情况下一周第一天为:',week_list[week_index])
20. itermonthdates()方法——返回指定月中的日期迭代器
Calendar 类中的 itermonthdates() 方法用于获取指定年份中某月内的日期迭代器(所有日期),其中包含当前月份开始周与结束周的所有日期。语法格式如下:
Calendar对象名.itermonthdates(year,month)
参数说明:
-
year :为指定的年份。
-
month :为指定的月份。
-
返回值:返回指定月中的日期迭代器,其中包含当前月份开始周与结束周的所有日期。
在获取指定月份的日期迭代器时,需要先指定需要获取的年份,然后再指定月份,代码如下:
from calendar import Calendar # 导入日历模块中的Calendar类
calendar_obj = Calendar() # 创建默认的Calendar对象
itermonth= calendar_obj.itermonthdates(2020,7) # 获取2020年7月份的日期迭代器
for i in itermonth: # 循环遍历迭代器中的日期
print(i) # 打印迭代器中的日期
21. itermonthdays()方法——返回指定月份每天日期的迭代器
Calendar 类中的 itermonthdays() 方法用于获取指定月份每天日期的迭代器,如果不是当月的日期显示为 0。语法格式如下:
Calendar对象名.itermonthdays(year,month)
参数说明:
-
year :指定年份。
-
month :指定月份。
-
返回值:返回一个迭代器,其内容为指定月份中每天日期对应的天数,如果不是当月的日期显示为 0。
使用 itermonthdays() 方法与 itermonthdates() 方法类似,需要指定年份与月份,然后通过循环遍历迭代器中的值,代码如下:
from calendar import Calendar # 导入日历模块中的Calendar类
calendar_obj = Calendar() # 创建默认的Calendar对象
itermonth= calendar_obj.itermonthdays(2020,5) # 获取2020年5月份日期对应天数的迭代器
for i in itermonth: # 循环遍历迭代器中日期对应的天数
print(i) # 打印迭代器中日期对应的天数
22. itermonthdays2()方法——返回某月中日与星期的迭代器
Calendar 类中的 itermonthdays2() 方法用于获取指定月份每天日期与星期的迭代器,如果不是当月的日期显示为 0。语法格式如下:
Calendar对象名.itermonthdays2(year,month)
参数说明:
-
year :指定年份。
-
month :指定月份。
-
返回值:返回一个迭代器,其内容为指定月份中每天日期对应的天数与星期所组成的元组,并且包含当前月份开始周与结束周的所有星期(星期数字同样以 0 开始表示星期一),如果不是当月的日期显示为 0。
使用 itermonthdays2() 方法获取指定月份的日期天数与对应的星期,代码如下:
from calendar import Calendar # 导入日历模块中的Calendar类
calendar_obj = Calendar() # 创建默认的Calendar对象decimal
itermonth= calendar_obj.itermonthdays2(2020,8) # 获取2020年8月份日期对应天数与星期的迭代器
for i in itermonth: # 循环遍历迭代器中日期对应的天数与星期
# 打印迭代器中日期对应的天数与星期,其中代表星期的数字0表示星期1,数字6表示星期日
print(i)
23. itermonthdays3()方法——返回指定月份对应的日期迭代器
Calendar 类中的 itermonthdays3() 方法用于获取指定月份对应的日期迭代器,其中包含当前月份开始周与结束周的所有日期。语法格式如下:
Calendar对象名.itermonthdays3(year,month)
参数说明:
-
year :指定年份。
-
month :指定月份。
-
返回值:返回一个迭代器,其内容为指定月份内的所有日期对应的(年、月、日)所组成的元组,其中包含当前月份开始周与结束周的所有日期。
itermonthdays3() 方法与 itermonthdates() 方法类似,只是返回的年、月、日为元组形式,代码如下:
from calendar import Calendar # 导入日历模块中的Calendar类
calendar_obj = Calendar() # 创建默认的Calendar对象
itermonth= calendar_obj.itermonthdays3(2020,8) # 获取2020年8月份内的(年、月、日)
for i in itermonth: # 循环遍历迭代器中的(年、月、日)
print(i) # 打印迭代器中(年、月、日)
24. itermonthdays4()方法——返回年、月、日、星期的迭代器
Calendar 类中的 itermonthdays4() 方法用于获取指定月份中(年、月、日、星期数字)的迭代器,其中包含当前月份开始周与结束周的所有日期。语法格式如下:
Calendar对象名.itermonthdays4(year,month)
参数说明:
-
year :指定年份。
-
month :指定月份。
-
返回值:返回一个迭代器,其内容为指定月份内对应的(年、月、日、星期数字)所组成的元组,其中包含当前月份开始周与结束周的所有日期的(年、月、日、星期数字),其中星期数字同样以 0 开始,0 代表星期一。
itermonthdays4() 方法与 itermonthdays3() 方法类似,只是在返回的参数中多了一个星期数字,代 码如下:
from calendar import Calendar # 导入日历模块中的Calendar类
calendar_obj = Calendar() # 创建默认的Calendar对象decimal
itermonth= calendar_obj.itermonthdays4(2019,8) # 获取2020年8月份内的(年、月、日、星期数字)
for i in itermonth: # 循环遍历迭代器中的(年、月、日、星期数字)
print(i) # 打印迭代器中(年、月、日、星期数字)
25. iterweekdays()方法——返回一周数字的迭代器
Calendar 类中的 iterweekdays() 方法用于获取一周数字的迭代器。语法格式如下:
Calendar对象名.iterweekdays()
参数说明:
- 返回值:返回一周数字的迭代器,迭代器的第一个值与 firstweekday 的值相同。
使用 iterweekdays() 方法获取一周数字的迭代器,代码如下:
from calendar import Calendar # 导入日历模块中的Calendar类
calendar_obj = Calendar() # 创建默认的Calendar对象
print(‘返回的迭代器为:’,calendar_obj.iterweekdays()) # 打印迭代器对象
# 将返回的迭代器转换为列表,其中的值表示星期一至星期日,0为星期一,一周的第一天
print(‘将迭代器转换为列表:’,list(calendar_obj.iterweekdays()))
26. monthdatescalendar()方法——返回指定年、月的周列表
Calendar 类中的 monthdatescalendar() 方法用于获取指定年、月的周列表,该列表为二维列表。语法格式如下:
Calendar对象名.monthdatescalendar(year,month)
参数说明:
-
year :指定年份。
-
month :指定月份。
-
返回值:返回一个二维列表,其内容为指定月份内的日期列表,包括当前月份开始周与结束周的日期信息。
使用 monthdatescalendar() 方法获取 2020 年 8 月份的周列表,代码如下:
from calendar import Calendar # 导入日历模块中的Calendar类
calendar_obj = Calendar() # 创建默认的Calendar对象
# 获取2020年8月份的周列表,该列表为二维列表
week_list= calendar_obj.monthdatescalendar(2020,8)
for i in week_list: # 循环遍历列表中的周列表
print(i) # 打印周列表
27. monthdays2calendar()方法——返回某月中日与星期的列表
Calendar 类中的 monthdatescalendar() 方法用于获取指定月份中日期对应的天数与星期数字(不是当前月份的天数为 0)所组成的列表,该列表为二维列表。语法格式如下:
Calendar对象名.monthdays2calendar(year,month)
参数说明:
-
year :指定年份。
-
month :指定月份。
-
返回值:返回一个二维列表,其内容为指定月份中日期对应的天数与星期数字(不是当前月份的天数为 0)所组成的列表(以周进行划分),包括当前月份开始周与结束周的日期信息。
使用 monthdays2calendar() 方法获取 2020 年 10 月份的日期天数与对应的星期数字列表,代码如下:
from calendar import Calendar # 导入日历模块中的Calendar类
calendar_obj = Calendar() # 创建默认的Calendar对象
# 获取2020年10月份日期天数与对应的星期数字,该列表为二维列表
week_list= calendar_obj.monthdays2calendar(2020,10)
for i in week_list: # 循环遍历列表中的日期天数与对应的星期数字
print(i)# 打印日期天数与对应的星期数字列表
28. monthdayscalendar()方法——返回某月中的日期列表
Calendar 类中的 monthdayscalendar() 方法用于获取指定月份中日期天数(不是当前月份的天数为 0)所组成的列表,该列表为二维列表。语法格式如下:
Calendar对象名.monthdayscalendar(year,month)
参数说明:
-
year :指定年份。
-
month :指定月份。
-
返回值:返回一个二维列表,其内容为指定月份中日期天数(不是当前月份的天数为 0)所组成的列表(以周进行划分),包括当前月份开始那周与结束那周的日期信息。
使用 monthdayscalendar() 方法获取指定月份中的日期天数,代码如下:
from calendar import Calendar # 导入日历模块中的Calendar类
calendar_obj = Calendar() # 创建默认的Calendar对象
# 获取2020年7月份日期天数,该列表为二维列表
days_list= calendar_obj.monthdayscalendar(2020,7)
for i in days_list: # 循环遍历列表中的日期天数
print(i) # 打印日期天数列表
29. yeardatescalendar()方法——返回一年中 每个月的日期列表
Calendar 类中的 yeardatescalendar() 方法用于获取指定年份中所有日期所组成的列表,该列表为四维列表。语法格式如下:
Calendar对象名.yeardatescalendar(year,width=3)
参数说明:
-
year :指定年份。
-
width :默认值为 3,表示将一年中的 12 个月进行划分,每 width(默认 3)个月为一份,每份中包含对应的月份,每个月中包含对应的周,每周包含对应的 1~7 天(每一天为 datetime.date对象)。
-
返回值:返回一个四维列表,其内容为指定年份中所有日期所组成的列表,包括月份开始周与结束周的日期信息。
使用 yeardatescalendar() 方法获取 2020 年中每个月的日期列表,代码如下:
from calendar import Calendar # 导入日历模块中的Calendar类
calendar_obj = Calendar() # 创建默认的Calendar对象
# 获取2020年每个月所有日期,该列表为四维列表
dates_list= calendar_obj.yeardatescalendar(2020,1)
for i in dates_list: # 循环遍历列表中的日期
print(i) # 打印一年中每月的日期列表
30. yeardays2calendar()方法——返回每个月的 日与星期的列表
Calendar 类中的 yeardays2calendar() 方法用于获取指定年份中日期天数与星期数字组成的元组所组成的列表,该列表为四维列表。语法格式如下:
Calendar对象名.yeardays2calendar(year,width=3)
参数说明:
-
year :指定年份。
-
width :默认值为 3,表示将一年中的 12 个月进行划分,每 width(默认 3)个月为一份,每份中包含对应的月份,每个月中包含对应的周,每周包含对应的日期天数与星期数字组成的元组。
-
返回值:返回一个四维列表,其内容为指定年份中日期天数与星期数字组成的元组所组成的列表,包括月份开始周与结束周的日期天数与星期数字。
使用 yeardays2calendar() 方法获取 2020 年每月的日期天数和星期数字,代码如下:
from calendar import Calendar # 导入日历模块中的Calendar类
calendar_obj = Calendar() # 创建默认的Calendar对象
# 获取2020年每个月的日期天数与星期数字,该列表为四维列表
dates_week_list= calendar_obj.yeardays2calendar(2020,1)
for i in dates_week_list: # 循环遍历列表中的日期天数与星期数字
print(i) # 打印一年中每月的日期天数与星期数字的列表
31. yeardayscalendar()方法——返回指定年份中每个月日期天数所组成的列表
Calendar 类中的 yeardayscalendar() 方法用于获取指定年份中每个月日期天数所组成的列表,该列表为四维列表。语法格式如下:
Calendar对象名.yeardayscalendar(year,width=3)
参数说明:
-
year :指定年份。
-
width :默认值为 3,表示将一年中的 12 个月进行划分,每 width(默认 3)个月为一份,每份中包含对应的月份,每个月中包含对应的周,每周包含对应的日期天数(不是当前月份的天数为 0)。
-
返回值:返回一个四维列表,其内容为指定年份中每个月的日期天数所组成的列表,包括月份开始周与结束周的日期天数。
使用 yeardayscalendar() 方法获取 2020 年每个月的日期天数,代码如下:
from calendar import Calendar # 导入日历模块中的Calendar类
calendar_obj = Calendar() # 创建默认的Calendar对象
# 获取2020年每个月的日期天数,该列表为四维列表
days_list= calendar_obj.yeardayscalendar(2020,1)
for i in days_list: # 循环遍历列表中的日期天数
print(i) # 打印一年中每个月的日期天数列表
32. HTMLCalendar类
HTMLCalendar 类用于创建 HTML 日历。语法格式如下:
Calendar.HTMLCalendar(firstweekday = 0)
参数说明:
- firstweekday :表示一周的第一天为星期几,默认 0 为星期一,6 为星期日。
创建一个一周第一天为星期日的 HTMLCalendar 对象,然后通过 formatmonth() 方法获取 2020年 4 月 HTML 日历的表格代码,代码如下:
from calendar import HTMLCalendar # 导入日历模块中的HTMLCalendar类
# 创建一周第一天为星期日的HTMLCalendar对象
htmlcalendar_object = HTMLCalendar(firstweekday=6)
# 打印2020年4月html日历表格代码,该日历一周的第一天为星期日
print(htmlcalendar_object.formatmonth(2020,4))
33. HTMLCalendar类——日历样式相关属性
HTMLCalendar 类具有如表1 所示的日历样式相关属性,可以重载来自定义应用日历的样式。
34. formatmonth()方法——将指定月份的日历以html表格方式返回
HTMLCalendar 类中的 formatmonth() 方法用于返回指定月份日历的 HTML 表格。语法格式如下:
HTMLCalendar对象名.formatmonth(theyear, themonth, withyear=True)
参数说明:
-
theyear :表示年份。
-
themonth :表示月份。
-
withyear :当此参数为 True 时,年份将显示在返回的 HTML 表格的标题中,否则将仅显示月份。默认为 True。
-
返回值:将指定月份的日历以 HTML 表格代码的方式返回。
使用 formatmonth() 方法获取 2020 年 8 月份日历对应的 HTML 表格代码,代码如下:
from calendar import HTMLCalendar # 导入日历模块中的HTMLCalendar类
htmlcalendar_object = HTMLCalendar() # 创建HTMLCalendar对象
print(htmlcalendar_object.formatmonth(2020,8)) # 打印2020年8月份日历对应的HTML表格代码
35. formatyear()方法——返回HTML格式的年份日历
HTMLCalendar 类中的 formatyear() 方法用于返回指定年份日历的 HTML 表格。语法格式如下:
HTMLCaLendar对象名.formatyear(theyear,width=3)
-
theyear :表示年份。
-
width :默认值为 3,表示年份日历的 HTML 表格以三个月为一行共四行显示。
-
返回值:将指定年份的日历以 HTML 表格代码的方式返回。
使用 formatyear() 方法获取 2020 年日历对应的 HTML 表格代码,代码如下:
from calendar import HTMLCalendar # 导入日历模块中的HTMLCalendar类
htmlcalendar_object = HTMLCalendar() # 创建HTMLCalendar对象
print(htmlcalendar_object.formatyear(2020)) # 打印2020年日历对应的HTML表格代码
36. formatyearpage()方法——返回HTML格式的年份日历
HTMLCalendar 类中的 formatyearpage() 方法用于返回指定年份日历完整的 HTML 页面,该页面代码为字节类型。语法格式如下:
HTMLCalendar对象名.formatyearpage(theyear, width=3, css=’calendar.css’, encoding=None)
参数说明:
-
theyear :表示年份。
-
width :默认值为 3,表示年份日历的 HTML 页面中以三个月为一行共四行显示。
-
css :表示指定 css 样式的名称。
-
encoding :表示编码方式,默认为系统编码。
-
返回值:返回指定年份日历完整的 HTML 页面,该页面代码为字节类型。
使用 formatyearpage() 方法获取 2020 年日历完整的 HTML 页面代码,代码如下:
from calendar import HTMLCalendar # 导入日历模块中的HTMLCalendar类
htmlcalendar_object = HTMLCalendar() # 创建HTMLCalendar对象
html_bytes = htmlcalendar_object.formatyearpage(2020) # 获取字节类型的HTML页面代码
print(html_bytes.decode(encoding=’utf-8’)) # 打印2020年日历对应的HTML页面代码
37. TextCalendar类
TextCalendar 类用于创建纯文本的日历。语法格式如下:
Calendar.TextCalendar(firstweekday = 0 )
参数说明:
- firstweekday :表示一周的第一天为星期几,默认 0 为星期一,6 为星期日。
使用 TextCalendar 类打印 2020 年 8 月份指定格式的日历,代码如下:
from calendar import TextCalendar # 导入日历模块中TextCalendar类
textcalendar_object = TextCalendar() # 创建TextCalendar对象
textcalendar_object.prmonth(2020,8,10,2) # 打印2020年8月份指定格式的日历
38. formatmonth()方法——获取指定月份字符串类型的日历
TextCalendar 类中的 formatmonth() 方法用于获取指定月份中字符串类型的日历。语法格式如下:
TextCalendar对象名.formatmonth(theyear, themonth, w=0, l=0)
参数说明:
-
theyear :指定年份。
-
themonth :指定月份。
-
w :用于设置日历中每列日期的宽度。
-
l :用于设置日历中每周所占用的行数。
-
返回值:返回以多行字符串形式所组成的月份日历。
使用 formatmonth() 方法获取 2020 年 8 月份的字符串类型日历,代码如下:
from calendar import TextCalendar # 导入日历模块中TextCalendar类
textcalendar_object = TextCalendar() # 创建TextCalendar对象
print(textcalendar_object.formatmonth(2020,8)) # 打印2020年8月份字符类型的日历
39. formatyear()方法——获取指定年份字符串类型的日历
TextCalendar 类中的 formatyear() 方法用于获取指定年份中字符串类型的日历。语法格式如下:
TextCalendar对象名.formatyear(theyear,w = 2,l = 1,c = 6,m = 3 )
参数说明:
-
theyear :指定年份。
-
w :用于设置日历中每列日期的宽度。
-
l :用于设置日历中每周所占用的行数。
-
c :用于设置每个月份日历之间的横向距离。
-
l m :用于设置一行显示几个月份日历。
-
返回值:返回以多行字符串形式表示的一年中所有月份的日历。
使用 formatyear() 方法获取 2020 年中所有月份字符串类型的日历,代码如下:
from calendar import TextCalendar # 导入日历模块中TextCalendar类
textcalendar_object = TextCalendar() # 创建TextCalendar对象
print(textcalendar_object.formatyear(2020,m=6)) # 打印2020年中所有月份的字符串类型日历
40. prmonth()方法——打印指定月份的日历
TextCalendar 类中的 prmonth() 方法用于打印指定月份的日历。语法格式如下:
TextCalendar对象名.prmonth(theyear, themonth, w=0, l=0)
参数说明:
-
theyear :指定年份。
-
themonth :指定月份。
-
w :用于设置日历中每列日期的宽度。
-
l :用于设置日历中每周所占用的行数。
-
返回值:返回指定月份的日历。
prmonth() 方法与 formatmonth() 方法类似,都可以获取指定月份的日历,但是 prmonth() 方法用于直接打印指定月份的日历,代码如下:
from calendar import TextCalendar # 导入日历模块中TextCalendar类
textcalendar_object = TextCalendar() # 创建TextCalendar对象
textcalendar_object.prmonth(2020,6) # 打印2020年6月份的日历
41. pryear()方法——打印指定年中所有月份日历
TextCalendar 类中的 pryear() 方法用于打印指定年份的日历。语法格式如下:
TextCalendar对象名.pryear(theyear, w=2, l=1, c=6, m=3)
参数说明:
-
theyear :指定年份。
-
w :用于设置日历中每列日期的宽度。
-
l :用于设置日历中每周所占用的行数。
-
c :用于设置每个月份日历之间的横向距离。
-
m :用于设置一行显示几个月份日历。
-
返回值:返回指定年中所有月份日历。
from calendar import TextCalendar # 导入日历模块中TextCalendar类
textcalendar_object = TextCalendar() # 创建TextCalendar对象
textcalendar_object.pryear(2020,m=6) # 打印2020年中所有月份的日历