文章目录
- 前言
- 一、calendar模块方法
- 1.firstweekday()
- 2.setfirstweekday(firstweekday)
- 3.isleap(year)
- 4.leapdays(y1, y2)
- 5.weekday(year, month, day)
- 6.monthrange(year, month)
- 7.weekheader(n)
- 8.monthcalendar(year, month)
- 9.prmonth(theyear, themonth, w=0, l=0)
- 10.prcal(year, w=0, l=0, c=6, m=3)
- 11.day_name
- 12.month_name
- 二、Calendar类
- 1.iterweekdays()
- 2.itermonthdates(year, month)
- 3.itermonthdays(year, month)
- 三、TextCalendar 类
- 1.formatmonth(theyear, themonth, w=0, l=0)
- 2.formatyear(theyear, w=2, l=1, c=6, m=3)
前言
calendar模块是日历模块,允许你输出类似Unix cal程序的日历,并提供与日历相关的其他有用功能。
主要由Calendar类与一些模块方法构成。其中,Calendar类是TextCalendar与HTMLCalendar的基类。
一、calendar模块方法
1.firstweekday()
含义:返回当前每周的第一天。
返回:默认情况下,返回0,即星期一。
import calendar
print(calendar.firstweekday()) #返回:0
2.setfirstweekday(firstweekday)
含义:指定一周的第一天。
参数 :通过常量 MONDAY、TUESDAY、WEDNESDAY、THURSDAY、FRIDAY、SATURDAY 和 SUNDAY 设置星期;
返回:0-6,其中 0 表示星期一,以此类推6表示星期日。
import calendar#将星期日设置为一周的第一天
calendar.setfirstweekday(firstweekday=6)
print(calendar.firstweekday()) #返回:6,表示星期日为一周的第一天。
3.isleap(year)
含义:判断是否是闰年。
返回:闰年为True,平年为False。
import calendar
calendar.isleap(2023) # 返回:False。
4.leapdays(y1, y2)
含义:返回y1与y2年份之间的闰年数量。
参数:y1与y2皆为年份。包括起始年,不包括结束年。
返回:int。
import calendar
calendar.leapdays(2002,2023) # 返回:5
5.weekday(year, month, day)
含义:获取指定日期为星期几。
返回:0-6,其中 0 表示星期一,以此类推6表示星期日。
import calendar
calendar.weekday(2024,7,3) #返回:2,表示星期三。
6.monthrange(year, month)
含义:返回元组, 第一个值代表给定月份第一天的星期;第二个值代表给定月份有多少天。
import calendar
calendar.monthrange(2024,7) #返回:(0, 31)
7.weekheader(n)
含义:返回包含星期的英文缩写。
参数:n表示返回缩写的长度。
import calendar
calendar.weekheader(4) #返回:'Sun Mon Tue Wed Thu Fri Sat '
8.monthcalendar(year, month)
含义:返回表示一个月的日历的矩阵(不是当月份的天数为0),每一行代表一周; 可以通过setfirstweekday() 改变默认值;
import calendar
calendar.monthcalendar(2024,7)
# 返回:
# [[0, 1, 2, 3, 4, 5, 6],
# [7, 8, 9, 10, 11, 12, 13],
# [14, 15, 16, 17, 18, 19, 20],
# [21, 22, 23, 24, 25, 26, 27],
# [28, 29, 30, 31, 0, 0, 0]]
9.prmonth(theyear, themonth, w=0, l=0)
含义:打印一个月的日历
参数:
- theyear:指定年份。
- themonth:指定月份。
- w:日之间的间隔w个字符,默认0。
l:星期之间的行数,默认0。
import calendar
calendar.prmonth(2024,7)
10.prcal(year, w=0, l=0, c=6, m=3)
含义:打印一年的日历
参数:
- year:指定年份。
- w:日之间的间隔w个字符,默认0。
- l:星期之间的行数,默认0。
- c:月之间的宽度。
- m:将12个月分为m列。
import calendar
calendar.prcal(2024,m=4)
11.day_name
含义:返回星期列表
import calendar
[day_name for day_name in calendar.day_name]
# 返回:['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday']
12.month_name
含义:返回月份列表
import calendar
[month_name for month_name in calendar.month_name]
# 返回:
#['',
# 'January',
# 'February',
# 'March',
# 'April',
# 'May',
# 'June',
# 'July',
# 'August',
# 'September',
# 'October',
# 'November',
# 'December']
二、Calendar类
Calendar对象提供了一些可被用于准备日历数据格式化的方法。 这个类本身不执行任何格式化操作。
1.iterweekdays()
获取一周的数字的迭代器。
from calendar import Calendarcar=Calendar()
weeks=[item for item in car.iterweekdays()]
print(weeks) # 返回:[0, 1, 2, 3, 4, 5, 6]
2.itermonthdates(year, month)
获取一个月日期的迭代器。
from calendar import Calendar
car=Calendar()
date=[item for item in car.itermonthdates(2024,7)]
print(date)
3.itermonthdays(year, month)
返回一个月天数的迭代器。
from calendar import Calendar
car=Calendar()
days=[item for item in car.itermonthdays(2024,7)]
print(days)
三、TextCalendar 类
TextCalendar 对象提供了一些生成纯文本日历的方法。
1.formatmonth(theyear, themonth, w=0, l=0)
含义:返回一个月的日历。
参数:
- theyear:指定年。
- themonth:指定月。
- w:日期之间宽度。
- l:指定每行日期之间的行数。
from calendar import TextCalendartextcar = TextCalendar()
print(textcar.formatmonth(2024, 7))
2.formatyear(theyear, w=2, l=1, c=6, m=3)
含义:返回m 个列的日历。
参数:
- theyear:指定年份。
- w:日之间的间隔w个字符,默认0。
- l:星期之间的行数,默认0。
- c:月之间的宽度。
- m:将12个月分为m列。
from calendar import TextCalendartextcar = TextCalendar()
print(textcar.formatyear(20204,m=4))
参考文章:
https://blog.csdn.net/youku1327/article/details/106227420