8.2. calendar通用日历相关函数

源程序代码:Lib/calendar.py


该模块允许您输出日历像 Unix cal的程序,并提供有关日历的其他有用的功能。默认情况下,这些日历有作为的第一天的一周内和周日周一 (欧洲公约 》) 最后一次。使用setfirstweekday()来设置一周的第一天到周日 (6) 或任何其他工作日。指定日期的参数给出了为整数。相关的功能,请参阅的日期时间的模块。

大部分的这些函数和类依赖于使用理想化的日历,在两个方向无限期延长的当前公历的日期时间模块。这符合定义的"可"公历的德肖维茨和莱因戈尔德的书"历法计算",它在哪里的基准日历的所有计算。

class calendar.Calendar([firstweekday])

创建一个日历对象。firstweekday是一个整数,指定一周的第一天。 0是星期一 (默认)、 6 日是星期天。

日历对象提供了可用于准备日历数据格式的几种方法。此类不做任何格式本身。这是子类的工作。

新版本 2.5 中的。

日历实例具有以下方法:

iterweekdays()

返回迭代器将用于一周星期天的数字。从迭代器的第一个值将firstweekday属性的值相同。

itermonthdates(year, month)

在今年中返回迭代器,供月个月(1-12)。将此迭代器将返回所有几天 (如datetime.date对象) 月和前开始每月或每月结束后得到一个完整的星期所需的所有天。

itermonthdays2(year, month)

返回在今年中的迭代器,供月类似于itermonthdates()天返回将元组组成的日数和每周的天数。

itermonthdays(year, month)

返回在今年中的迭代器,供月类似于itermonthdates()天返回只会天的数字。

monthdatescalendar(year, month)

全周在一年的月每月返回列表的几个星期。周是七个datetime.date对象的列表。

monthdays2calendar(year, month)

全周在一年的月每月返回列表的几个星期。周是天数字以及平日七元组的列表。

monthdayscalendar(year, month)

全周在一年的月每月返回列表的几个星期。周有七天的数字列表。

yeardatescalendar(year[, width])

返回为指定年份的数据准备好格式。返回值是的月行的列表。每个月行包含到宽度(默认为 3) 的几个月。每月包含 4 至 6 个星期,每星期包含 1 — — 7 天。天是datetime.date对象。

yeardays2calendar(year[, width])

返回的数据为指定年准备格式 (类似于yeardatescalendar())。星期列表中的条目是天数字以及平日的元组。天外面这个月的数字为零。

yeardayscalendar(year[, width])

返回的数据为指定年准备格式 (类似于yeardatescalendar())。星期列表中的条目是一天的数字。天外面这个月的数字为零。

class calendar.TextCalendar([firstweekday])

此类可用于生成纯文本的日历。

新版本 2.5 中的。

TextCalendar实例具有以下方法:

formatmonth(theyear, themonth[, w[, l]])

在一个多行字符串返回一个月的日历。如果提供了w ,它指定的日期列,居中的宽度。如果给出l ,它指定每个星期会使用的行的数。取决于所指定的构造函数或一组在setfirstweekday()法的第一个工作日。

prmonth(theyear, themonth[, w[, l]])

打印一个月的日历,如经由formatmonth()

formatyear(theyear[, w[, l[, c[, m]]]])

返回一个m-列作为一个多行字符串的整整一年的日历。可选参数wlc分别为日期列的宽度,每周和每月列之间的空格数行。取决于所指定的构造函数或一组在setfirstweekday()法的第一个工作日。最早一年可以为其生成的日历是取决于平台。

pryear(theyear[, w[, l[, c[, m]]]])

打印日历整整一年,由formatyear()返回。

class calendar.HTMLCalendar([firstweekday])

此类可用于生成 HTML 的日历。

新版本 2.5 中的。

HTMLCalendar实例具有以下方法:

formatmonth(theyear, themonth[, withyear])

作为一个 HTML 表中返回一个月的日历。如果withyear为 true 年将包括在页眉中,否则将使用只是月份名称。

formatyear(theyear[, width])

作为一个 HTML 表返回一年的日历。宽度(默认为 3) 指定每个行的月的数。

formatyearpage(theyear[, width[, css[, encoding]]])

作为一个完整的 HTML 页面返回一年的日历。宽度(默认为 3) 指定每个行的月的数。css是使用级联样式表的名称。如果应使用没有样式表,没有一个是可以传递的。编码指定的编码将用于输出 (默认设置为系统默认的编码)。

class calendar.LocaleTextCalendar([firstweekday[, locale]])

TextCalendar这个子类可以在构造函数中传递一个区域设置名称,并且将返回月份和星期几的名称在指定的区域设置。如果此区域设置包括编码所有字符串包含月份和星期几名称将作为 unicode 返回。

新版本 2.5 中的。

class calendar.LocaleHTMLCalendar([firstweekday[, locale]])

HTMLCalendar这个子类可以在构造函数中传递一个区域设置名称,并且将返回月份和星期几的名称在指定的区域设置。如果此区域设置包括编码所有字符串包含月份和星期几名称将作为 unicode 返回。

新版本 2.5 中的。

这两个类的formatweekday()formatmonthname()方法暂时更改当前的区域设置为给定的区域设置因为当前的区域设置是进程范围的设置,他们不是线程安全的。

对于简单的文本日历本模块提供了下列函数。

calendar.setfirstweekday(weekday)

设置平日 (0是星期一, 6是星期天) 每个星期开始。周一周二周三周四周五周六周日的值提供方便。例如,若要设置的第一个工作日到星期天:

import calendar
calendar.setfirstweekday(calendar.SUNDAY)

在 2.0 版中的新。

calendar.firstweekday()

返回为平日的当前设置,每个星期开始。

在 2.0 版中的新。

calendar.isleap(year)

当返回True 是闰年,否则为虚假

calendar.leapdays(y1, y2)

返回闰年的数目范围内从y1y2 (专用), y1y2是几年。

2.0 版本中的更改:此函数不适合范围跨越 Python 1.5.2 世纪变化。

calendar.weekday(year, month, day)

返回(1970年— —......),每月(112),一天1-31) 的 (0是星期一) 一周的一天。

calendar.weekheader(n)

返回包含缩写的星期几名称的标头。n指定宽度 (以字符为一个工作日。

calendar.monthrange(year, month)

返回月份,为指定的中的工作日的天数,每月的第一天。

calendar.monthcalendar(year, month)

返回一个矩阵,代表一个月的日历。每一行代表一周 ;在这个月的天代表由零点。每周星期一开始,除非通过setfirstweekday()设置。

calendar.prmonth(theyear, themonth[, w[, l]])

打印月历,由month()返回。

calendar.month(theyear, themonth[, w[, l]])

返回多行字符串,使用formatmonth()TextCalendar类中的一个月的日历。

在 2.0 版中的新。

calendar.prcal(year[, w[, l[c]]])

打印日历整整一年,由calendar()返回。

calendar.calendar(year[, w[, l[c]]])

整整一年,作为多行字符串,使用formatyear()TextCalendar类返回 3 列日历。

在 2.0 版中的新。

calendar.timegm(tuple)

一个无关而又方便的函数,采用gmtime()函数在时间模块中,如返回时间元组并返回相应的 Unix 时间戳值,假设 1970 年,时代和 POSIX 编码。事实上, time.gmtime()timegm()是别人的逆。

在 2.0 版中的新。

日历模块导出下列数据属性:

calendar.day_name

一个数组,表示当前的区域设置中的星期数。

calendar.day_abbr

一个数组,表示当前的区域设置中的缩写的星期数。

calendar.month_name

一个数组,表示今年的几个月中的当前区域设置。在此之前正常公约 》 1 月 1 月 1 号,所以它的长度为 13 和month_name [0]空字符串。

calendar.month_abbr

一个数组,表示今年的缩写个月中的当前区域设置。在此之前正常公约 》 1 月 1 月 1 号,所以它的长度为 13 和month_abbr [0]空字符串。

请参见

Module datetime
Object-oriented interface to dates and times with similar functionality to the time module.
Module time
Low-level time related functions.