源程序代码:Lib/calendar.py
该模块允许您输出日历像 Unix cal的程序,并提供有关日历的其他有用的功能。默认情况下,这些日历有作为的第一天的一周内和周日周一 (欧洲公约 》) 最后一次。使用setfirstweekday()来设置一周的第一天到周日 (6) 或任何其他工作日。指定日期的参数给出了为整数。相关的功能,请参阅的日期和时间的模块。
大部分的这些函数和类依赖于使用理想化的日历,在两个方向无限期延长的当前公历的日期时间模块。这符合定义的"可"公历的德肖维茨和莱因戈尔德的书"历法计算",它在哪里的基准日历的所有计算。
创建一个日历对象。firstweekday是一个整数,指定一周的第一天。 0是星期一 (默认)、 6 日是星期天。
日历对象提供了可用于准备日历数据格式的几种方法。此类不做任何格式本身。这是子类的工作。
新版本 2.5 中的。
日历实例具有以下方法:
返回迭代器将用于一周星期天的数字。从迭代器的第一个值将firstweekday属性的值相同。
在今年年中返回迭代器,供月个月(1-12)。将此迭代器将返回所有几天 (如datetime.date对象) 月和前开始每月或每月结束后得到一个完整的星期所需的所有天。
返回在今年年中的迭代器,供月月类似于itermonthdates()。天返回将元组组成的日数和每周的天数。
返回在今年年中的迭代器,供月月类似于itermonthdates()。天返回只会天的数字。
全周在一年的月每月返回列表的几个星期。周是七个datetime.date对象的列表。
全周在一年的月每月返回列表的几个星期。周是天数字以及平日七元组的列表。
全周在一年的月每月返回列表的几个星期。周有七天的数字列表。
返回为指定年份的数据准备好格式。返回值是的月行的列表。每个月行包含到宽度(默认为 3) 的几个月。每月包含 4 至 6 个星期,每星期包含 1 — — 7 天。天是datetime.date对象。
返回的数据为指定年准备格式 (类似于yeardatescalendar())。星期列表中的条目是天数字以及平日的元组。天外面这个月的数字为零。
返回的数据为指定年准备格式 (类似于yeardatescalendar())。星期列表中的条目是一天的数字。天外面这个月的数字为零。
此类可用于生成纯文本的日历。
新版本 2.5 中的。
TextCalendar实例具有以下方法:
在一个多行字符串返回一个月的日历。如果提供了w ,它指定的日期列,居中的宽度。如果给出l ,它指定每个星期会使用的行的数。取决于所指定的构造函数或一组在setfirstweekday()法的第一个工作日。
打印一个月的日历,如经由formatmonth()。
返回一个m-列作为一个多行字符串的整整一年的日历。可选参数w、 l和c分别为日期列的宽度,每周和每月列之间的空格数行。取决于所指定的构造函数或一组在setfirstweekday()法的第一个工作日。最早一年可以为其生成的日历是取决于平台。
打印日历整整一年,由formatyear()返回。
此类可用于生成 HTML 的日历。
新版本 2.5 中的。
HTMLCalendar实例具有以下方法:
作为一个 HTML 表中返回一个月的日历。如果withyear为 true 年将包括在页眉中,否则将使用只是月份名称。
作为一个 HTML 表返回一年的日历。宽度(默认为 3) 指定每个行的月的数。
TextCalendar这个子类可以在构造函数中传递一个区域设置名称,并且将返回月份和星期几的名称在指定的区域设置。如果此区域设置包括编码所有字符串包含月份和星期几名称将作为 unicode 返回。
新版本 2.5 中的。
HTMLCalendar这个子类可以在构造函数中传递一个区域设置名称,并且将返回月份和星期几的名称在指定的区域设置。如果此区域设置包括编码所有字符串包含月份和星期几名称将作为 unicode 返回。
新版本 2.5 中的。
注
这两个类的formatweekday()和formatmonthname()方法暂时更改当前的区域设置为给定的区域设置。因为当前的区域设置是进程范围的设置,他们不是线程安全的。
对于简单的文本日历本模块提供了下列函数。
设置平日 (0是星期一, 6是星期天) 每个星期开始。周一周二周三周四周五周六和周日的值提供方便。例如,若要设置的第一个工作日到星期天:
import calendar
calendar.setfirstweekday(calendar.SUNDAY)
在 2.0 版中的新。
返回为平日的当前设置,每个星期开始。
在 2.0 版中的新。
返回闰年的数目范围内从y1到y2 (专用), y1和y2是几年。
2.0 版本中的更改:此函数不适合范围跨越 Python 1.5.2 世纪变化。
返回年(1970年— —......),每月(1–12),一天(1-31) 的 (0是星期一) 一周的一天。
返回包含缩写的星期几名称的标头。n指定宽度 (以字符为一个工作日。
返回月份,为指定的年、月中的工作日的天数,每月的第一天。
返回一个矩阵,代表一个月的日历。每一行代表一周 ;在这个月的天代表由零点。每周星期一开始,除非通过setfirstweekday()设置。
返回多行字符串,使用formatmonth()的TextCalendar类中的一个月的日历。
在 2.0 版中的新。
打印日历整整一年,由calendar()返回。
整整一年,作为多行字符串,使用formatyear()的TextCalendar类返回 3 列日历。
在 2.0 版中的新。
一个无关而又方便的函数,采用gmtime()函数在时间模块中,如返回时间元组并返回相应的 Unix 时间戳值,假设 1970 年,时代和 POSIX 编码。事实上, time.gmtime()和timegm()是别人的逆。
在 2.0 版中的新。
日历模块导出下列数据属性:
一个数组,表示当前的区域设置中的星期数。
一个数组,表示当前的区域设置中的缩写的星期数。
一个数组,表示今年的几个月中的当前区域设置。在此之前正常公约 》 1 月 1 月 1 号,所以它的长度为 13 和month_name [0]空字符串。
一个数组,表示今年的缩写个月中的当前区域设置。在此之前正常公约 》 1 月 1 月 1 号,所以它的长度为 13 和month_abbr [0]空字符串。