【Python 内置模块】calendar

2024-01-20 00:00:00

calendar 模块是一个用于处理日历相关功能的强大标准库。

目录:

判断一个月有多少天 + 判断一个月第一天是星期几

返回一个元组,其中:

  • 第一个元素是该月第一天是星期几(0为星期一,6为星期日);
  • 第二个元素是该月的天数。
import calendar

# 获取 2026 年 1 月第一天是星期几和总天数
first_weekday, days_in_month = calendar.monthrange(2026, 1)

print(f"第一天是星期{first_weekday + 1}, 共有{days_in_month}天。")

判断闰年

闰年的判断标准是:

  • 公历年份不是整百数(即末尾不是 00)时,能被 4 整除的年份是闰年,否则是平年。例如,2004 年、2020 年、2024 年都能被 4 整除,所以是闰年。
  • 公历年份是整百数(世纪年,如 1900 年、2000 年)时,必须能被 400 整除才是闰年,否则是平年。例如,2000 年能被 400 整除,是闰年;而 1900 年、2100 年虽然能被 100 整除,但不能被 400 整除,所以是平年。

判断某一年是否是闰年:

import calendar

print(calendar.isleap(2020))    # True
print(calendar.isleap(2024))    # True
print(calendar.isleap(2026))    # False

判断两个年份之间(包含y1,不包含y2)的闰年总数。

import calendar

print(calendar.leapdays(2020, 2024))    # 1。包含了 2020,不包含 2024

打印指定年月的日历

import calendar

# 打印指定年月的日历
print(calendar.month(2026, 3))

运行后终端打印如下信息:

$ python test.py
     March 2026
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 31

打印指定年份的日历

import calendar

# 打印指定年份的日历
print(calendar.calendar(2026))

运行后终端打印如下信息:

$ python test.py
                                  2026

      January                   February                   March
Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su
          1  2  3  4                         1                         1
 5  6  7  8  9 10 11       2  3  4  5  6  7  8       2  3  4  5  6  7  8
12 13 14 15 16 17 18       9 10 11 12 13 14 15       9 10 11 12 13 14 15
19 20 21 22 23 24 25      16 17 18 19 20 21 22      16 17 18 19 20 21 22
26 27 28 29 30 31         23 24 25 26 27 28         23 24 25 26 27 28 29
                                                    30 31

       April                      May                       June
Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su
       1  2  3  4  5                   1  2  3       1  2  3  4  5  6  7
 6  7  8  9 10 11 12       4  5  6  7  8  9 10       8  9 10 11 12 13 14
13 14 15 16 17 18 19      11 12 13 14 15 16 17      15 16 17 18 19 20 21
20 21 22 23 24 25 26      18 19 20 21 22 23 24      22 23 24 25 26 27 28
27 28 29 30               25 26 27 28 29 30 31      29 30

        July                     August                  September
Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su
       1  2  3  4  5                      1  2          1  2  3  4  5  6
 6  7  8  9 10 11 12       3  4  5  6  7  8  9       7  8  9 10 11 12 13
13 14 15 16 17 18 19      10 11 12 13 14 15 16      14 15 16 17 18 19 20
20 21 22 23 24 25 26      17 18 19 20 21 22 23      21 22 23 24 25 26 27
27 28 29 30 31            24 25 26 27 28 29 30      28 29 30
                          31

      October                   November                  December
Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su
          1  2  3  4                         1          1  2  3  4  5  6
 5  6  7  8  9 10 11       2  3  4  5  6  7  8       7  8  9 10 11 12 13
12 13 14 15 16 17 18       9 10 11 12 13 14 15      14 15 16 17 18 19 20
19 20 21 22 23 24 25      16 17 18 19 20 21 22      21 22 23 24 25 26 27
26 27 28 29 30 31         23 24 25 26 27 28 29      28 29 30 31
                          30

返回首页

本文总阅读量  次
皖ICP备17026209号-3
总访问量: 
总访客量: