此模块中定义的方法和类使用理想化的日历,当前的公历在两个方向上无限期扩展。零年和负年按照ISO 8601标准的规定进行解释。0年是1 BC,-1年是2 BC。
这些日历默认情况下以星期一为一周的第一天,以星期日为最后一天。您可以使用setfirstweekday()将的第一天设置为星期日(6)或任何其他工作日。指定日期的参数以整数形式给出。
示例:显示给定年份日历的Python程序。
# Python程序打印日历 # 给定年份 # 导入日历模块 import calendar # 使用日历打印年份日历 print ("The calender of year 2020 is : ") print (calendar.calendar(2020, 2, 1, 6))
输出:
The calender of year 2020 is : 2020 January February March 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 1 2 1 6 7 8 9 10 11 12 3 4 5 6 7 8 9 2 3 4 5 6 7 8 13 14 15 16 17 18 19 10 11 12 13 14 15 16 9 10 11 12 13 14 15 20 21 22 23 24 25 26 17 18 19 20 21 22 23 16 17 18 19 20 21 22 27 28 29 30 31 24 25 26 27 28 29 23 24 25 26 27 28 29 30 31 April May June 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 1 2 3 1 2 3 4 5 6 7 6 7 8 9 10 11 12 4 5 6 7 8 9 10 8 9 10 11 12 13 14 13 14 15 16 17 18 19 11 12 13 14 15 16 17 15 16 17 18 19 20 21 20 21 22 23 24 25 26 18 19 20 21 22 23 24 22 23 24 25 26 27 28 27 28 29 30 25 26 27 28 29 30 31 29 30 July August September 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 1 2 1 2 3 4 5 6 6 7 8 9 10 11 12 3 4 5 6 7 8 9 7 8 9 10 11 12 13 13 14 15 16 17 18 19 10 11 12 13 14 15 16 14 15 16 17 18 19 20 20 21 22 23 24 25 26 17 18 19 20 21 22 23 21 22 23 24 25 26 27 27 28 29 30 31 24 25 26 27 28 29 30 28 29 30 31 October November December 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 1 1 2 3 4 5 6 5 6 7 8 9 10 11 2 3 4 5 6 7 8 7 8 9 10 11 12 13 12 13 14 15 16 17 18 9 10 11 12 13 14 15 14 15 16 17 18 19 20 19 20 21 22 23 24 25 16 17 18 19 20 21 22 21 22 23 24 25 26 27 26 27 28 29 30 31 23 24 25 26 27 28 29 28 29 30 31 30
示例:显示给定月份的Python程序。
# Python程序打印日历 # 给定的月份 # 导入日历模块 import calendar # 使用日历打印2020年5月的日历 print ("The calender of May 2020 is : ") calendar.prmonth(2020, 5)
输出:
The calender of May 2020 is : May 2020 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 31
Python中的日历模块提供以下类,
此类创建Calendar对象。Calendar对象提供了几种可用于准备日历数据以进行格式化的方法。数据的格式化由此类的子类完成。
方法 | 描述 |
---|---|
iterweekdays() | 返回将用于一周的星期几的迭代器。 |
itermonthdates(y, m) | 返回y年中月m(1–12)的迭代器。 |
itermonthdays(y, m) | 传回y年中月份m的迭代器,类似于itermonthdates()。返回的天数是月份中的天数。对于给定月份以外的日子,天数为0。 |
itermonthdays2(y,m) | 返回y年中月份m的迭代器。返回的 天是由月中的一天号和工作日号组成的元组。 |
itermonthdays3(y,m) | 返回y年中月份m的迭代器。返回的天是由年份,月份和月份中的一天数字组成的元组。 从3.7版开始可用 |
itermonthdays4(y,m) | 返回y年中月份m的迭代器。返回的天是由年,月,月中的某天和星期几组成的元组。 从3.7版开始可用 |
monthdatescalendar(y, m) | 返回y年的m个月中的星期列表(以完整的星期为单位)。 以七个datetime.date对象列表列出的周数。 |
monthdays2calendar(y, m) | 返回y年的m个月中的星期列表(以完整的星期为单位)。 给出的星期数是日数和工作日数的七个元组的列表。 |
monthdayscalendar(y, m) | 返回y年的m个月中的星期列表(以完整的星期为单位)。 以7天数字列表形式给出的周数。 |
yeardatescalendar(y,width = 3) | 返回指定年份y的数据,准备进行格式化。返回值是月份行的列表。 |
yeardays2calendar(y,width = 3) | 返回指定年份y的数据,准备进行格式化。 周列表是日编号和工作日编号的元组。 |
yeardayscalendar(y,width = 3) | 返回指定年份y的数据,准备进行格式化。 给定的周列表是天数列表。 |
此类创建简单的文本日历。
方法 | 描述 |
---|---|
格式month(年,月,w = 0,l = 0) | 以多行字符串返回一个月的日历。 |
prmonth(年,月,w = 0,l = 0) | 打印由返回的一个月的日历formatmonth()。 |
formatyear(年,w = 2,l = 1,c = 6,m = 3) | 以多行字符串的形式返回整个一年的m列日历。 |
pryear(年,w = 2,l = 1,c = 6,m = 3) | 打印由返回的整年的日历formatyear()。 |
此类用于创建HTML日历并对其进行操作。HTML日历具有以下方法和属性:
方法
方法 | 描述 |
---|---|
格式month(年,月,withyear = True) | 以HTML表格的形式返回一个月的日历。 |
格式年份(年,宽度= 3) | 以HTML表格的形式返回一年的日历。 |
formatyearpage(year,width = 3,css ='calendar.css',encoding = None) | 返回一年的日历作为完整的HTML页面。 |
属性
属性 | 描述 |
---|---|
CSS类 | 每个工作日使用的CSS类列表。 |
cssclass_noday | 上个月或下个月发生的工作日的CSS类。 |
cssclasses_weekday_head | 标头行中用于工作日名称的CSS类列表。 |
cssclass_month_head | 本月的主要CSS类(用于formatmonthname())。默认值为“月”。 |
cssclass_month | 整个月表的CSS类(用于formatmonth())。默认值为“月”。 |
cssclass_year | 全年表格的CSS类(用于formatyear())。默认值为“年份”。 |
cssclass_year_head | 全年表头的CSS类(用于formatyear())。默认值为“年份”。 |
这是TextCalendar类的子类。可以在构造函数中为其传递语言环境名称,该名称将在指定的语言环境中返回月份和工作日的名称。
这是HTMLCalendar类的子类。可以在构造函数中为其传递语言环境名称,该名称将在指定的语言环境中返回月份和工作日的名称。
Python中的日历模块为简单的文本日历提供了以下方法:
方法 | 描述 |
---|---|
setfirstweekday(weekday) | 将工作日设置为每周开始。 其中(0是星期一,6是星期日)。 |
firstweekday() | 返回每个星期开始的工作日的当前设置。 |
isleap(y) | 如果y是a年,则返回True,否则返回False。 |
日(y1,y2) | 返回从y1到y2的of年数,其中y1和y2是年。 |
weekday(year, month, day) | 返回年份(1970 –...),月份(1–12),日期(1–31)的星期几(0为星期一)。 |
weekheader(n) | 返回包含缩写的工作日名称的标头。n指定一个工作日的宽度(以字符为单位)。 |
monthrange(year,month) | 返回给定年份和月份的月份的第一天的工作日以及月份中的天数。 |
monthcalendar(year, month) | 返回代表一个月日历的矩阵。每行代表一个星期;该月以外的天数打印为0。 |
prmonth(年,月,w = 0,l = 0) | 打印由返回的一个月的日历month()。 |
month(year,month,w = 0,l = 0) | 使用formatmonth()TextCalendar类的多行字符串返回一个月的日历。 |
prcal(年,w = 0,l = 0,c = 6,m = 3) | 打印由返回的整年的日历calendar()。 |
日历(年,w = 0,l = 0,c = 6,m = 3) | 使用formatyear()TextCalendar类的,以多行字符串的形式返回整个一年的3列日历。 |
该模块具有以下数据属性:
day_name:这是一个数组,表示当前语言环境中的星期几。
day_abbr:这是一个数组,表示当前语言环境中星期几的缩写。
month_name:这是一个数组,表示当前语言环境中的一年中的月份。这里的一月表示为月号1,因此数组的长度为13,而month_name [0]为空字符串。
month_abbr:这是一个数组,表示当前语言环境中一年中的缩写月份。这里的一月表示为月份号1,因此数组的长度为13,而month_abbr [0]为空字符串。
参考:日历—与日历相关的常规功能