当前位置:首页>python>Python calendar 模块用法

Python calendar 模块用法

  • 2026-09-30 17:41:39
Python calendar 模块用法

Python calendar 模块用法

calendar是Python内置模块,用于处理日历、星期、月份、年份相关计算,不需要pip安装,直接import即可。

import calendar

1. 打印整月日历:month() / prmonth()

  • calendar.month(year,month)
     返回字符串格式的月日历
  • calendar.prmonth(year,month)
     直接打印月日历
import calendar # 返回2026年8月的日历字符串print(calendar.month(2026, 8)) # 直接打印2026年8月日历calendar.prmonth(2026, 8)

输出示例:

August 2026Su Mo Tu We Th Fr Sa                   1 2  3  4  5  6  7  8 9 10 11 12 13 14 1516 17 18 19 20 21 2223 24 25 26 27 28 2930 31

2. 打印整年日历:calendar() / prcal()

# 获取2026全年日历字符串cal_str = calendar.calendar(2026)print(cal_str)# 直接打印全年calendar.prcal(2026)

3. 判断闰年:isleap(year)

返回True闰年,False平年

print(calendar.isleap(2024)) # Trueprint(calendar.isleap(2026)) # False

4. 计算两个年份之间闰年数量:leapdays(y1,y2)

区间:y1 ~ y2‑1,左闭右开

# 2020到2026之间有多少闰年print(calendar.leapdays(2020,2026))

5. 获取某月信息:monthrange(year,month)

返回元组 (该月第一天星期几, 该月总天数)

⚠️ calendar模块星期编码:0=周一,6=周日

# 2026‑08week_first, day_count = calendar.monthrange(2026,8)print(”8月1号星期编号:”,week_first)print(”8月总天数:”,day_count)

6. 获取某月每一日的星期:monthcalendar(year,month)

返回二维列表,一行为日历的一行,数字代表日期,0代表空白。

data = calendar.monthcalendar(2026,8)print(data)'''[[0, 0, 0, 0, 0, 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,0,0]]'''

7. 星期名称、月份名称

# 星期列表,默认从周一开始print(calendar.day_name)print(calendar.day_abbr) #简写 Mon,Tue…# 月份print(calendar.month_name)print(calendar.month_abbr) #简写 Jan,Feb…

8. weekday() / monthrange星期编码说明

  • calendar.weekday(year,month,day)
    :返回星期编号,0=周一,6=周日
# 2026‑08‑20是星期几w = calendar.weekday(2026,8,20)print(w)print(calendar.day_name[w])

💡对比:datetime模块 datetime.weekday()同样0=周一;datetime.isoweekday() 1=周一,7=周日。

9. 修改日历起始星期(默认周一0)

# 设置日历第一列为周日calendar.setfirstweekday(calendar.SUNDAY)calendar.prmonth(2026,8)

常量:calendar.MONDAY=0,calendar.SUNDAY=6

10. 实用小示例

示例1:遍历某月所有日期

import calendary,m = 2026,8_,total_days = calendar.monthrange(y,m)for d in range(1, total_days+1):    wd = calendar.weekday(y,m,d)    print(f”{y}-{m:02d}-{d:02d} {calendar.day_name[wd]}”)

示例2:判断今天是否闰年

import calendarprint(calendar.isleap(2026))

⚠️注意点

  1. calendar模块只做日历计算,不获取系统当前时间;要获取当前年月日需要搭配datetime模块。
import datetime,calendarnow = datetime.datetime.now()print(calendar.month(now.year, now.month))
  1. 月份参数必须是1‑12,超出抛ValueError。

最新文章

随机文章