📜  Python | 日历模块

📅  最后修改于: 2020-04-09 05:57:44             🧑  作者: Mango

Python定义了一个内置模块calendar来处理与日历相关的操作。
calendar模块允许像程序输出日历,并提供与日历相关的其他有用功能。“calendar“模块中定义的函数和类使用理想化的日历,当前的公历日历在两个方向上都无限期扩展。默认情况下,这些日历将星期一作为一周的第一天,将星期日作为最后一天(欧洲惯例)。
示例1:显示给定月份的日历。

# Python展示给定月份的年
# 导入module
import calendar
yy = 2017
mm = 11
# 显示calendar
print(calendar.month(yy, mm))

输出:


示例2:显示给定年份的日历。

# Python代码展示如何使用
# calendar()函数打印日历
# 导入calendar模块
import calendar
# 使用calendar打印2018年年历的日历
print ("2018年年历的日历 : ")
print (calendar.calendar(2018, 2, 1, 6))

输出:


class calendar.Calendar :
Calendar类创建一个Calendar对象。Calendar对象提供了几种可用于准备日历数据以进行格式化的方法。此类本身不进行任何格式化。这是子类的工作。日历类允许根据日期,月份和年份对各种任务进行计算。Calendar类提供以下方法:

功能 描述
iterweekdays() 返回将用于一周的星期几的迭代器
itermonthdates() 返回一年中月份(1–12)的迭代器
itermonthdays() 返回指定月份和年份的迭代器
itermonthdays2() 方法用于获取与itermonthdates()类似的一年中月份的迭代器。返回的天数将是元组,它由一个月中的一天号和一个工作日号组成。
itermonthdays3() 返回一年中与itermonthdates()类似的月份中的迭代器,但不受datetime.date范围的限制。返回的天为元组,由一年,一个月和一个月中的一天的数字组成。
itermonthdays4() 返回一年中与itermonthdates()类似的月份中的迭代器,但不受datetime.date范围的限制。返回的天为元组,该元组由一年,一个月,一个月中的某天以及一周中的某天组成。
monthdatescalendar() 用于获取一年中某月的几周列表(整周)
monthdays2calendar() 用于获取一年中某月的几周列表(整周)
monthdayscalendar 用于获取一年中某月的几周列表(整周)
yeardatescalendar() 用于获取一年中某月的几周列表(整周)
yeardays2calendar() 用于获取指定年份的数据。周列表中的条目是天数和工作日数的元组
yeardayscalendar() 用于获取指定年份的数据。周列表中的条目是天数

class calendar.TextCalendar :
TextCalendar类可用于生成纯文本日历。Python中的TextCalendar类允许您编辑日历并根据需要使用。

功能 描述
formatmonth() 方法用于以多行字符串获取月份的日历
prmonth() 方法用于打印由formatmonth()返回的月份日历
formatyear() 方法用于以多行字符串的形式获取全年的m列日历
pryear() 方法用于打印由formatmonth()返回的整年的日历

class calendar.HTMLCalendar :
HTMLCalendar类可用于生成HTML日历。Python中的HTMLCalendar类允许您编辑日历并根据需要使用。

功能 描述
formatmonth() 方法用于获取月份日历作为HTML表格
formatyear() 方法用于将年历作为HTML表格获取。
formatyearpage() 方法用于获取年历作为完整的HTML页面

Simple TextCalendar class :
对于简单的文本日历,日历模块提供以下功能:

功能 描述
setfirstweekday() 函数设置星期的开始日期
firstweekday() 函数返回第一个工作日的数字。默认情况下为0(星期一)
isleap() 函数检查参数中提到的年份是否为闰年
leapdays() 函数返回参数中指定年份之间的日数
weekday() 函数返回其参数中指定日期的星期几(0为星期一)
weekheader() 返回包含缩写的工作日名称的标题
monthrange() 函数返回两个整数,第一个是星期的开始天数(0为星期一),第二个是月中的天数
monthcalendar() 返回代表一个月日历的矩阵。每行代表一周;该月以外的日子用零表示
prmonth() 该函数还可以打印特定年份的月份,但是无需执行“打印”操作即可执行该操作。
month() 函数打印参数中提到的特定年份的月份
prcal() 该功能还可以打印特定年份的日历,但是不需要执行“打印”操作
calendar() 功能显示年份,字符宽度,编号。每周行数和列间隔。