首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

calendar

源代码: Lib / calendar.py

此模块允许您输出日历,如Unix cal程序,并提供与日历相关的其他有用功能。默认情况下,这些日历的星期一为一周的第一天,而星期天为最后一天(欧洲大会)。用于setfirstweekday()将星期的第一天设置为星期日(6)或任何其他工作日。指定日期的参数以整数形式给出。有关相关功能,另请参阅datetimetime模块。

这些功能和类中的大多数都依赖于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列日历作为多行字符串返回。可选参数wlc分别是日期列宽,每周行数和月份列之间的空格数。取决于构造函数中指定的第一个工作日或由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星期日)每周开始。值MONDAYTUESDAYWEDNESDAYTHURSDAYFRIDAYSATURDAY,和SUNDAY被提供了方便。例如,要将第一个工作日设置为星期日:

代码语言:javascript
复制
import calendar
calendar.setfirstweekday(calendar.SUNDAY)

2.0版本中的新功能。

calendar.firstweekday()

返回星期几开始每周的当前设置。

2.0版本中的新功能。

calendar.isleap(year)

True如果年份是闰年,则返回,否则返回False

calendar.leapdays(y1, y2)

返回从y1y2(独占)范围内的闰年数,其中y1y2是年。

版本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]是空字符串。

扫码关注腾讯云开发者

领取腾讯云代金券