On this page
8.2. calendar—与 calendar 相关的常规Function
源代码: Lib/calendar.py
该模块允许您输出 Unix cal 程序之类的 calendar,并提供与 calendar 相关的其他有用Function。默认情况下,这些 calendar 将星期一作为一周的第一天,将星期日作为最后一天(欧洲惯例)。使用setfirstweekday()将一周的第一天设置为周日(6)或任何其他工作日。指定日期的参数以整数形式给出。有关相关Function,另请参见datetime和time模块。
这些函数和类中的大多数都依赖于datetime模块,该模块使用理想化的 calendar,当前的格里高利历法在两个方向上都无限期地扩展。这与 Dershowitz 和 Reingold 的书“ Calendrical Calculations”中“ progresive Gregorian”calendar 的定义匹配,该 calendar 是所有计算的基础 calendar。
- 类
calendar.
Calendar
([第一个工作日])- 创建一个Calendar对象。 * firstweekday *是一个整数,指定一周中的第一天。
0
是星期一(默认值),6
是星期日。
- 创建一个Calendar对象。 * firstweekday *是一个整数,指定一周中的第一天。
Calendar对象提供了几种可用于准备 calendar 数据以进行格式化的方法。此类本身不进行任何格式化。这是子类的工作。
2.5 版的新Function。
Calendar个实例具有以下方法:
iterweekdays
( )- 返回用于一周的星期几的迭代器。迭代器的第一个值将与firstweekday属性的值相同。
itermonthdates
(年,月)- 返回年份* year 中月份 month *(1-12)的迭代器。该迭代器将返回该月的所有天(作为datetime.date个对象),以及返回整周所需的月初或月末之后的所有天。
itermonthdays2
(年,月)- 返回类似于* itermonthdates()的年份* year 中月份 month *的迭代器。返回的天数将是一个由天数和周数组成的 Tuples。
itermonthdays
(年,月)- 返回类似于* itermonthdates()的年份* year 中月份 month *的迭代器。返回的天数仅仅是天数。
monthdatescalendar
(年,月)- 将* year 的月份 month *的星期列表作为完整的星期返回。周是七个datetime.date对象的列表。
monthdays2calendar
(年,月)- 将* year 的月份 month *的星期列表作为完整的星期返回。星期是由日期和工作日数字组成的七个 Tuples 的列表。
monthdayscalendar
(年,月)- 将* year 的月份 month *的星期列表作为完整的星期返回。周是 7 天数字的列表。
yeardatescalendar
(* year * [,* width *])- 返回指定年份准备格式化的数据。返回值是月份行的列表。每个月行最多包含* width *月(默认为 3)。每个月包含 4 到 6 周,每个星期包含 1-7 天。天是datetime.date个对象。
yeardays2calendar
(* year * [,* width *])- 返回指定年份准备格式化的数据(类似于yeardatescalendar())。周列表中的条目是天数和工作日数的 Tuples。这个月以外的天数为零。
yeardayscalendar
(* year * [,* width *])- 返回指定年份准备格式化的数据(类似于yeardatescalendar())。周列表中的条目是天数。这个月以外的天数为零。
类
calendar.
TextCalendar
([第一个工作日])- 此类可用于生成纯文本 calendar。
2.5 版的新Function。
TextCalendar个实例具有以下方法:
formatmonth
(* theyear , themonth * [,* w * [,* l *]])- 以多行字符串返回一个月的 calendar。如果提供* w ,则它指定日期列的宽度(居中)。如果给出 l *,则它指定每周将使用的行数。取决于构造函数中指定的或由setfirstweekday()方法设置的第一个工作日。
prmonth
(* theyear , themonth * [,* w * [,* l *]])- 打印formatmonth()返回的一个月的 calendar。
formatyear
(* theyear * [,* w * [,* l * [,* c * [,* m *]]]])- 以多行字符串的形式返回全年的* m 列 calendar。可选参数 w , l 和 c *分别用于日期列宽度,每周行数和月份列之间的间隔数。取决于构造函数中指定的或由setfirstweekday()方法设置的第一个工作日。可以生成 calendar 的最早年份取决于平台。
pryear
(* theyear * [,* w * [,* l * [,* c * [,* m *]]]])- 打印formatyear()返回的整年的 calendar。
类
calendar.
HTMLCalendar
([第一个工作日])- 此类可用于生成 HTMLcalendar。
2.5 版的新Function。
HTMLCalendar个实例具有以下方法:
formatmonth
((* theyear , themonth * [,* withyear *])- 返回一个月的 calendar 作为 HTML 表。如果* withyear *为 true,则年份将包含在标题中,否则将仅使用月份名称。
formatyear
(* theyear * [,* width *])- 将一年的 calendar 返回为 HTML 表格。 * width *(默认为 3)指定每行的月数。
formatyearpage
(* theyear * [,* width * [,* css * [,* encoding *]]])- 返回一年的 calendar 作为完整的 HTML 页面。 * width *(默认为 3)指定每行的月数。 * css *是要使用的层叠样式表的名称。如果不使用样式表,则可以传递None。 * encoding *指定用于输出的编码(默认为系统默认编码)。
类
calendar.
LocaleTextCalendar
([第一工作日 [,语言环境]])- TextCalendar的子类可以在构造函数中传递一个语言环境名称,并将以指定的语言环境返回月份和工作日名称。如果此语言环境包括编码,则包含月份和工作日名称的所有字符串将作为 Unicode 返回。
2.5 版的新Function。
- 类
calendar.
LocaleHTMLCalendar
([第一工作日 [,语言环境]])- HTMLCalendar的子类可以在构造函数中传递一个语言环境名称,并将以指定的语言环境返回月份和工作日名称。如果此语言环境包括编码,则包含月份和工作日名称的所有字符串将作为 Unicode 返回。
2.5 版的新Function。
Note
这两个类的formatweekday()
和formatmonthname()
方法将当前语言环境临时更改为给定的* locale *。因为当前语言环境是进程范围的设置,所以它们不是线程安全的。
对于简单的文本 calendar,此模块提供以下Function。
calendar.
setfirstweekday
(工作日)- 将工作日(
0
是星期一,6
是星期日)设置为每周开始。为方便起见,提供了值MONDAY
,TUESDAY
,WEDNESDAY
,THURSDAY
,FRIDAY
,SATURDAY
和SUNDAY
。例如,将第一个工作日设置为星期日:
- 将工作日(
import calendar
calendar.setfirstweekday(calendar.SUNDAY)
2.0 版中的新Function。
calendar.
firstweekday
( )- 返回每个星期开始的工作日的当前设置。
2.0 版中的新Function。
calendar.
isleap
(年)calendar.
leapdays
(* y1 , y2 *)- 返回 of 年,从* y1 到 y2 (不包括),其中 y1 和 y2 *是年份。
在版本 2.0 中进行了更改:此Function不适用于 Python 1.5.2 中跨越一个世纪的变化的范围。
calendar.
weekday
(年,月,日)- 返回* year (
1970
–…), month (1
–12
), day *(1
–31
)的星期几(0
是星期一)。
- 返回* year (
calendar.
weekheader
(* n *)- 返回包含缩写的工作日名称的 Headers。 * n *指定一个工作日的宽度(以字符为单位)。
calendar.
monthrange
(年,月)- 返回指定的* year 和 month *的月份的第一天的工作日以及月份中的天数。
calendar.
monthcalendar
(年,月)- 返回代表一个月的 calendar 的矩阵。每行代表一个星期;月份以外的天数,以零表示。除非由setfirstweekday()设置,否则每个星期都从星期一开始。
calendar.
prmonth
(* theyear , themonth * [,* w * [,* l *]])- 打印month()返回的一个月的 calendar。
calendar.
month
(* theyear , themonth * [,* w * [,* l *]])- 使用TextCalendar类的
formatmonth()
以多行字符串返回一个月的 calendar。
- 使用TextCalendar类的
2.0 版中的新Function。
calendar.
prcal
(* year [,w [,l [c]]] *)- 打印calendar()返回的整年的 calendar。
calendar.
calendar
(* year [,w [,l [c]]] *)- 使用TextCalendar类的
formatyear()
作为多行字符串返回整个一年的 3 列 calendar。
- 使用TextCalendar类的
2.0 版中的新Function。
calendar.
timegm
(* tuple *)- 一个不相关但方便的函数,它使用一个时间 Tuples(例如time模块中的gmtime()函数返回的),并返回相应的 Unix 时间戳值(假定为 1970 年)和 POSIX 编码。实际上,time.gmtime()和timegm()是彼此的逆。
2.0 版中的新Function。
calendar模块导出以下数据属性:
calendar.
day_name
- 代表当前语言环境中星期几的数组。
calendar.
day_abbr
- 表示当前语言环境中星期几的缩写的数组。
calendar.
month_name
- 表示当前语言环境中一年中月份的数组。这遵循一月的常规惯例,即月份号 1,因此长度为 13,并且
month_name[0]
是空字符串。
- 表示当前语言环境中一年中月份的数组。这遵循一月的常规惯例,即月份号 1,因此长度为 13,并且
calendar.
month_abbr
- 表示当前语言环境中一年中缩写月份的数组。这遵循一月的常规惯例,即月份号 1,因此长度为 13,并且
month_abbr[0]
是空字符串。
- 表示当前语言环境中一年中缩写月份的数组。这遵循一月的常规惯例,即月份号 1,因此长度为 13,并且