calendar
calendar — General calendar-related functions
源代码:
Lib / calendar.py
此模块允许您输出日历,如Unix cal
程序,并提供与日历相关的其他有用功能。默认情况下,这些日历的星期一为一周的第一天,而星期天为最后一天(欧洲大会)。用于setfirstweekday()
将星期的第一天设置为星期日(6)或任何其他工作日。指定日期的参数以整数形式给出。有关相关功能,另请参阅datetime
和time
模块。
这些功能和类中的大多数都依赖于datetime
使用理想化日历的模块,当前的格里历日历在两个方向上无限延伸。这与Dershowitz和Reingold的书“Calendrical Calculations”中的“pregraptic Gregorian”日历的定义相匹配,它是所有计算的基本日历。
class calendar.Calendar([firstweekday])
创建一个Calendar
对象。firstweekday
是一个整数,指定一周中的第一天。0
是星期一(默认),6
是星期天。
甲Calendar
对象提供了可用于制备日历数据进行格式化的几种方法。这个类本身不做任何格式化。这是子类的工作。
2.5版本中的新功能。
Calendar
实例具有以下方法:
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
列日历作为多行字符串返回。可选参数w
,l
和c
分别是日期列宽,每周行数和月份列之间的空格数。取决于构造函数中指定的第一个工作日或由setfirstweekday()
方法设置。可以生成日历的最早的一年是平台相关的。
pryear(theyear[, w[, l[, c[, m]]]])
打印返回的整年的日历formatyear()
。
class calendar.HTMLCalendar([firstweekday])
这个类可以用来生成HTML日历。
2.5版本中的新功能。
HTMLCalendar
实例具有以下方法:
formatmonth(theyear, themonth[, withyear])
将一个月份的日历作为HTML表格返回。如果年份
为真,年份
将包含在标题中,否则仅使用月份名称。
formatyear(theyear[, width])
将一年的日历作为HTML表格返回。宽度
(默认为3)指定每行的月数。
formatyearpage(theyear[, width[, css[, encoding]]])
将一年的日历作为完整的HTML页面返回。宽度
(默认为3)指定每行的月数。css
是要使用的级联样式表的名称。None
如果不使用样式表可以通过。编码
指定要用于输出的编码
(默认为系统默认编码
)。
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
星期日)每周开始。值MONDAY
,TUESDAY
,WEDNESDAY
,THURSDAY
,FRIDAY
,SATURDAY
,和SUNDAY
被提供了方便。例如,要将第一个工作日设置为星期日:
import calendar
calendar.setfirstweekday(calendar.SUNDAY)
2.0版本中的新功能。
calendar.firstweekday()
返回星期几开始每周的当前设置。
2.0版本中的新功能。
calendar.isleap(year)
True
如果年份
是闰年,则返回,否则返回False
。
calendar.leapdays(y1, y2)
返回从y1
到y2
(独占)范围内的闰年数,其中y1
和y2
是年。
版本2.0中更改:此功能对跨越Python 1.5.2的世纪变化的范围无效。
calendar.weekday(year, month, day)
返回年份
(-...),月份
(- ),日期
(- )的星期几(0
星期一)。1970112131
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]]])
返回一整年的3列日历中使用一个多行字符串formatyear()
中的TextCalendar
类。
2.0版本中的新功能。
calendar.timegm(tuple)
一个无关但方便的函数,需要一个时间元组(如模块中的gmtime()
函数time
返回的值),并返回相应的Unix时间戳值(假设为1970年)和POSIX编码。其实,time.gmtime()
并且timegm()
是彼此的倒数。
2.0版本中的新功能。
该calendar
模块导出以下数据属性:
calendar.day_name
表示当前语言环境中每周的几天的数组。
calendar.day_abbr
一个数组,表示当前语言环境中的星期几缩写。
calendar.month_name
一个数组,表示当前语言环境中的一年中的月份。这遵循1月份的正常约定,即1月份,所以它的长度为13,并且month_name[0]
是空字符串。
calendar.month_abbr
一个数组,代表当前语言环境中一年的缩写月份。这遵循1月份的正常约定,即1月份,所以它的长度为13,并且month_abbr[0]
是空字符串。