calendar模块用于处理日历展示与查询,1. month()输出指定年月表格;2. calendar()显示全年日历;3. weekday()返回星期几(0为周一);4. isleap()判断闰年;5. leapdays()计算区间闰年数;6. monthrange()返回每月起始 weekday 与天数;7. day_name和month_name提供名称列表,常与datetime配合使用。

在 Python 3 中,calendar 模块主要用于处理日历相关的操作,比如展示某月或某年的日历、判断闰年、获取星期几等。它不处理日期计算(那是 datetime 的任务),而是专注于以表格形式展示时间信息。
1. calendar.month(year, month)
打印指定年月的日历表格。
import calendar print(calendar.month(2025, 4))
输出:
April 2025
Mo Tu We Th Fr Sa Su
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
2. calendar.calendar(year)
返回指定年份的全年日历,按月排布。
立即学习“Python免费学习笔记(深入)”;
print(calendar.calendar(2025))
会输出 2025 年 12 个月的完整日历。
3. calendar.weekday(year, month, day)
返回某一天是星期几(0=Monday,6=Sunday)。
print(calendar.weekday(2025, 4, 5)) # 返回 5,表示星期六
4. calendar.isleap(year)
判断是否为闰年,返回布尔值。
print(calendar.isleap(2024)) # True print(calendar.isleap(2025)) # False
5. calendar.leapdays(y1, y2)
返回两个年份之间(包含起始年,不包含结束年)的闰年数量。
print(calendar.leapdays(2000, 2025)) # 输出 6
6. calendar.monthrange(year, month)
返回两个值:该月第一天是星期几(0=Monday),以及该月总天数。
first_day, num_days = calendar.monthrange(2025, 4) print(first_day) # 2,表示星期三 print(num_days) # 30
7. calendar.day_name 和 calendar.month_name
这些是方便使用的列表,包含星期和月份名称。
print(list(calendar.day_name)) # ['Monday', 'Tuesday', ...]print(calendar.month_name[4]) # 'April'
基本上就这些。用起来不复杂但容易忽略细节,比如 weekday 返回的是从 0 开始的星期一为第一天。实际使用中常配合 datetime 使用,比如想画一个日程表或做时间分析时特别有用。











