Python中calendar模块(第4节)


calendar模块

calendar英文本义是指“日历”,顾名思义,calendar模块提供与日历相关的实用函数,帮助我们得到与日历相关的信息。

calendar.isleap()函数判断是否为闰年,是闰年返回 True,否则为 False。例如:

动手练一练:

import calendar

print(calendar.isleap(2023))
print(calendar.isleap(2024))

执行以上代码,输出结果为:

False
True

calendar.leapdays()函数获取两个年份之间闰年的个数,例如在2010至2024年期间:

动手练一练:

import calendar

print(calendar.leapdays(2010, 2024))

执行以上代码,输出结果为:

3

calendar.month()函数可以打印指定某年的月历,例如打印2023年3月份的日历:

动手练一练:

import calendar

print("以下输出2023年3月份的日历:")
print("------2023年3月-------")
print(calendar.month(2023, 3))

执行以上代码,输出结果为:

以下输出2023年3月份的日历:
------2023年3月-------
March 2023
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

上面的例子中,我们还可以利用“w”参数控制输出每个日期的宽度间隔,利用“l”参数控制输出每星期的行数,例如:

动手练一练:

import calendar

print("以下输出2023年3月份的日历:")
print("------2023年3月-------")
print(calendar.month(2023, 3, w=4, l=2))

执行以上代码,输出结果为:

以下输出2023年3月份的日历:
------2023年3月-------
            March 2023

Mon  Tue  Wed  Thu  Fri  Sat  Sun

            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

calendar.monthcalendar()函数获取一个表示给定月份日历的列表矩阵。列表矩阵中的每一行代表一整周,月份以外的天数用零表示。例如:

动手练一练:

import calendar

print("以下输出2023年3月份的日历:")
print("------2023年3月-------")
print(calendar.monthcalendar(2023, 3))

执行以上代码,输出结果为:

以下输出2023年3月份的日历:
------2023年3月-------
[[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]]

calendar.monthrange()函数获取指定年月当月第一天是星期几,并获取当月天数。将两个数据组合成一个元组返回。例如:

动手练一练:

import calendar

print("------2023年3月-------")
print(calendar.monthrange(2023, 3))

执行以上代码,输出结果为:

------2023年3月-------
(2, 31)

calendar.weekday()函数获取某年某月某日是星期几,返回日期的星期码,从0(星期一)到6(星期日)。例如:

动手练一练:

import calendar

print("------2023年3月22日-------")
print(calendar.weekday(2023, 3, 22))

执行以上代码,输出结果为:

------2023年3月22日-------
2

calendar.calendar()函数获取某年年历,例如:

动手练一练:

import calendar

print("获取2024年年历:")
print("------2024年-------")
print(calendar.calendar(2024))

执行以上代码,输出结果为:

获取2024年年历:
------2024-------
                                  2024

      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  5  6  7                1  2  3  4                   1  2  3
 8  9 10 11 12 13 14       5  6  7  8  9 10 11       4  5  6  7  8  9 10
15 16 17 18 19 20 21      12 13 14 15 16 17 18      11 12 13 14 15 16 17
22 23 24 25 26 27 28      19 20 21 22 23 24 25      18 19 20 21 22 23 24
29 30 31                  26 27 28 29               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  6  7             1  2  3  4  5                      1  2
 8  9 10 11 12 13 14       6  7  8  9 10 11 12       3  4  5  6  7  8  9
15 16 17 18 19 20 21      13 14 15 16 17 18 19      10 11 12 13 14 15 16
22 23 24 25 26 27 28      20 21 22 23 24 25 26      17 18 19 20 21 22 23
29 30                     27 28 29 30 31            24 25 26 27 28 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  6  7                1  2  3  4                         1
 8  9 10 11 12 13 14       5  6  7  8  9 10 11       2  3  4  5  6  7  8
15 16 17 18 19 20 21      12 13 14 15 16 17 18       9 10 11 12 13 14 15
22 23 24 25 26 27 28      19 20 21 22 23 24 25      16 17 18 19 20 21 22
29 30 31                  26 27 28 29 30 31         23 24 25 26 27 28 29
                                                    30

      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  5  6                   1  2  3                         1
 7  8  9 10 11 12 13       4  5  6  7  8  9 10       2  3  4  5  6  7  8
14 15 16 17 18 19 20      11 12 13 14 15 16 17       9 10 11 12 13 14 15
21 22 23 24 25 26 27      18 19 20 21 22 23 24      16 17 18 19 20 21 22
28 29 30 31               25 26 27 28 29 30         23 24 25 26 27 28 29
                                                    30 31