Python标准库calendar的使用方法

 更新时间:2021年11月23日 11:33:36   作者:玉米丛里吃过亏  
本文主要介绍了Python标准库calendar的使用方法,calendar模块主要由Calendar类与一些模块方法构成,Calendar类又衍生了一些子孙类来帮助我们实现一些特殊的功能,感兴趣的可以了解一下

 此模块允许你输出类似Unix cal程序的日历,并提供与日历相关的其他有用功能。值得注意的是,默认情况下,这些日历将星期一作为一周的第一天,将星期日作为一周的最后一天(欧洲惯例)。不过,我们可以使用setfirstweekday()方法来设置一周的第一天为星期日或h者其他工作日,指定的日期以整数形式给出。

calendar模块主要由Calendar类与一些模块方法构成,Calendar类又衍生了一些子孙类来帮助我们实现一些特殊的功能

Calendar

模块方法

setfirstweekday(firstweekday):指定一周的第一天,0是星期一,…,6为星期日

import calendar

# 将星期日设置为一周第一天
calendar.setfirstweekday(firstweekday=6)

firstweekday():返回一周的第一天,0是星期一,…,6为星期日

import calendar

# 将星期日设置为一周第一天
calendar.setfirstweekday(firstweekday=6)
print(calendar.firstweekday())      # 6

isleap(year):判断指定是否是闰年,闰年为True,平年为False

import calendar

# 2018年是平年,所以为False
print(calendar.isleap(2018))        # False
# 2008年是如年,所以为True
print(calendar.isleap(2008))        # True

leapdays(y1, y2):返回y1与y2年份之间的闰年数量,y1与y2皆为年份。包括起始年,不包括结束年:

import calendar

# 2008到2011之间只有2008年是闰年,所以数量为1
print(calendar.leapdays(2008, 2011))    # 1

weekday(year, month, day):获取指定日期为星期几

import calendar

# 2018-08-08正是星期三,千万别忘记2代表的是星期三
print(calendar.weekday(2018, 8, 8))     # 2

weekheader(n):返回包含星期的英文缩写,n表示英文缩写所占的宽度

import calendar

print(calendar.weekheader(4))

############### 打印结果如下 ###############
Mon  Tue  Wed  Thu  Fri  Sat  Sun 

monthrange(year, month):返回一个由一个月第一个天的星期与当前月的天数组成的元组

import calendar

# 查看日历可以知道,08-01正是星期三,并且8月共31天
print(2018, 8)      # (2, 31)

monthcalendar(year, month):返回一个月中天数列表(不是当前月份的天数为0),按周划分,为一个二维数组。包括月份开始那周的所有日期和月份结束那周的所有日期

import calendar

calendar.setfirstweekday(firstweekday=6)
print(calendar.monthcalendar(2018, 8))

############### 打印结果如下 ###############
[[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]]

prmonth(theyear, themonth, w=0, l=0):打印一个月的日历,theyear指定年份,themonth指定月份,w每个单元格宽度,默认0,内部已做处理,最小宽度为2,l每列换l行,默认为0,内部已做处理,至少换行1行

import calendar

calendar.setfirstweekday(firstweekday=6)
calendar.prmonth(2018, 8)

############### 打印结果如下 ###############
    August 2018
Su Mo Tu We Th Fr Sa
          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

month(theyear, themonth, w=0, l=0):返回一个月的日历的多行文本字符串。theyear指定年份,themonth指定月份,w每个单元格宽度,默认0,内部已做处理,最小宽度为2,l每列换l行,默认为0,内部已做处理,至少换行1行

import calendar

calendar.setfirstweekday(firstweekday=6)
print(calendar.month(2018, 8))

############### 打印结果如下 ###############
    August 2018
Su Mo Tu We Th Fr Sa
          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

prcal(year, w=0, l=0, c=6, m=3):打印一年的日历,w每个单元格宽度,默认0,内部已做处理,最小宽度为2,l每列换l行,默认为0,内部已做处理,至少换行1行,c表示月与月之间的间隔宽度,默认为6,内部已做处理,最小宽度为2,m表示将12个月分为m列

import calendar

calendar.setfirstweekday(firstweekday=6)
calendar.prcal(2018, m=4)

############### 打印结果如下 ###############
                                               2018

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

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

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

calendar(year, w=2, l=1, c=6, m=3):以多行字符串形式返回一年的日历,w每个单元格宽度,默认2,内部已做处理,最小宽度为2,l每列换l行,默认为1,内部已做处理,至少换行1行,c表示月与月之间的间隔宽度,默认为6,内部已做处理,最小宽度为2,m表示将12个月分为m列

import calendar

calendar.setfirstweekday(firstweekday=6)
print(calendar.calendar(2018, m=4))

############### 打印结果如下 ###############
                                               2018

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

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

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

calendar.Calendar(firstweekday=0)类

firstweekday为一个整数,指定一周的第一天,0是星期一(默认),6为星期日

iterweekdays():获取一周的数字的迭代器,迭代器的第一个值与firstweekday的值相同

from calendar import Calendar
c = Calendar()
print(list(c.iterweekdays()))       # [0, 1, 2, 3, 4, 5, 6]-->代表星期一至星期日,0为星期一,即一周的第一天
c = Calendar(firstweekday=6)
print(list(c.iterweekdays()))       # [6, 0, 1, 2, 3, 4, 5]-->代表星期日至星期六,6为星期日,即一周的第一天

itermonthdates(year, month):获取一个月日期的迭代器,此迭代器会返回指定月份的所有日期,包括月份开始那周的所有日期和月份结束那周的所有日期

from calendar import Calendar

c = Calendar(firstweekday=6)
for item in c.itermonthdates(2018, 8):
    print(item)

############### 打印结果如下 ###############
2018-07-29
2018-07-30
2018-07-31
2018-08-01
...
2018-08-31
2018-09-01

可以看出,2018-07-29、2018-07-30、2018-07-31正是8月份开始的那一周的日期,而2018-09-01为8月份结束的那一周的日期,8月份所有的日期全部获取得到!另外注意的是,这里的日期为datatime.date类型!另外,请将星期天设置为一周的第一天,否则将无法直观显示其作用!

itermonthdays(year, month):返回一个月天数的迭代器(不是当前月份的天数为0),此迭代器将返回指定月份的日期数字,包括月份开始那周的所有日期和月份结束那周的所有日期

from calendar import Calendar

c = Calendar(firstweekday=6)
for item in c.itermonthdays(2018, 8):
    print(item)

############### 打印结果如下 ###############
0
0
0
1
...
31
0

因为2018-07-29、2018-07-30、2018-07-31、2018-09-01不是指定月份的日期,所以为0

itermonthdays2(year, month):返回一个月天数与星期的迭代器(不是当前月份的天数为0),此迭代器将返回指定月份的日期数字与星期几所代表的数字组成的元组,包括月份开始那周的所有日期和月份结束那周的所有日期

from calendar import Calendar

c = Calendar(firstweekday=6)
for item in c.itermonthdays2(2018, 8):
    print(item)
############### 打印结果如下 ###############
(0, 6)
(0, 0)
(0, 1)
(1, 2)
...
(31, 4)
(0, 5)

可以看出,2018-08-01正是星期三

monthdatescalendar(year, month):返回一个月日期列表,按周划分,为一个二维数组。包括月份开始那周的所有日期和月份结束那周的所有日期

from calendar import Calendar

c = Calendar(firstweekday=6)
for item in c.monthdatescalendar(2018, 8):
    print(item)

############### 打印结果如下 ###############
[datetime.date(2018, 7, 29), datetime.date(2018, 7, 30), datetime.date(2018, 7, 31), datetime.date(2018, 8, 1), datetime.date(2018, 8, 2), datetime.date(2018, 8, 3), datetime.date(2018, 8, 4)]
[datetime.date(2018, 8, 5), datetime.date(2018, 8, 6), datetime.date(2018, 8, 7), datetime.date(2018, 8, 8), datetime.date(2018, 8, 9), datetime.date(2018, 8, 10), datetime.date(2018, 8, 11)]
[datetime.date(2018, 8, 12), datetime.date(2018, 8, 13), datetime.date(2018, 8, 14), datetime.date(2018, 8, 15), datetime.date(2018, 8, 16), datetime.date(2018, 8, 17), datetime.date(2018, 8, 18)]
[datetime.date(2018, 8, 19), datetime.date(2018, 8, 20), datetime.date(2018, 8, 21), datetime.date(2018, 8, 22), datetime.date(2018, 8, 23), datetime.date(2018, 8, 24), datetime.date(2018, 8, 25)]
[datetime.date(2018, 8, 26), datetime.date(2018, 8, 27), datetime.date(2018, 8, 28), datetime.date(2018, 8, 29), datetime.date(2018, 8, 30), datetime.date(2018, 8, 31), datetime.date(2018, 9, 1)]

可以看出,打印出来的第一个值为第一周的日期列表,其中还包含了2018-07-29、2018-07-30、2018-07-31三天

monthdayscalendar(year, month):返回一个月中天数列表(不是当前月份的天数为0),按周划分,为一个二维数组。包括月份开始那周的所有日期和月份结束那周的所有日期

from calendar import Calendar

c = Calendar(firstweekday=6)
for item in c.monthdayscalendar(2018, 8):
    print(item)

############### 打印结果如下 ###############
[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]

monthdays2calendar(year, month):返回一个月中天数与星期的列表(不是当前月份的天数为0),按周划分,为一个二维数组。包括月份开始那周的所有日期和月份结束那周的所有日期

from calendar import Calendar

c = Calendar(firstweekday=6)
for item in c.monthdays2calendar(2018, 8):
    print(item)

############### 打印结果如下 ###############
[(0, 6), (0, 0), (0, 1), (1, 2), (2, 3), (3, 4), (4, 5)]
[(5, 6), (6, 0), (7, 1), (8, 2), (9, 3), (10, 4), (11, 5)]
[(12, 6), (13, 0), (14, 1), (15, 2), (16, 3), (17, 4), (18, 5)]
[(19, 6), (20, 0), (21, 1), (22, 2), (23, 3), (24, 4), (25, 5)]
[(26, 6), (27, 0), (28, 1), (29, 2), (30, 3), (31, 4), (0, 5)]

yeardatescalendar(year, width=3):返回一年中所有的日期,为一个4维数组。width表示将一年中12个月份进行划分,每width个月为一份,每一份包含各个月份,每个月份包含周,每周包含日期信息。包括月份开始那周的所有日期和月份结束那周的所有日期

from calendar import Calendar

c = Calendar(firstweekday=6)
for item in c.yeardatescalendar(2018, 3):
    print(item)

############### 打印结果如下 ###############
[[[datetime.date(2017, 12, 31), datetime.date(2018, 1, 1), datetime.date(2018, 1, 2),...]]]
[[[datetime.date(2018, 4, 1), datetime.date(2018, 4, 2), datetime.date(2018, 4, 3),...]]]
[[[datetime.date(2018, 7, 1), datetime.date(2018, 7, 2), datetime.date(2018, 7, 3),...]]]
[[[datetime.date(2018, 9, 30), datetime.date(2018, 10, 1), datetime.date(2018, 10, 2),...]]]

yeardayscalendar(year, width=3):返回一年中每个月的天数,为一个4维数组。width表示将一年中12个月份进行划分,每width个月为一份;每一份包含各个月份,每个月份包含周,每周包含天数信息(不是当前月份的天数为0)。包括月份开始那周的所有日期和月份结束那周的所有日期

from calendar import Calendar

c = Calendar(firstweekday=6)
for item in c.yeardayscalendar(2018, 3):
    print(item)

############### 打印结果如下 ###############
[[[0, 1, 2, 3, 4, 5, 6], [7, 8, 9, 10, 11, 12, 13], [14, 15, 16, 17, 18, 19, 20], ...]]]
[[[1, 2, 3, 4, 5, 6, 7], [8, 9, 10, 11, 12, 13, 14], [15, 16, 17, 18, 19, 20, 21], ...]]]
[[[1, 2, 3, 4, 5, 6, 7], [8, 9, 10, 11, 12, 13, 14], [15, 16, 17, 18, 19, 20, 21], ...]]]
[[[0, 1, 2, 3, 4, 5, 6], [7, 8, 9, 10, 11, 12, 13], [14, 15, 16, 17, 18, 19, 20], ...]]]

yeardays2calendar(year, width=3):返回一年中农每个月的天数与星期的元组,为一个4维的元组列表。width表示将一年中12个月份进行划分,每width个月为一份;每一份包含各个月份,每个月份包含周,每周包含天数与星期的元组信息(不是当前月份的天数为0)。包括月份开始那周的所有日期和月份结束那周的所有日期

from calendar import Calendar

c = Calendar(firstweekday=6)
for item in c.yeardays2calendar(2018, 3):
    print(item)

############### 打印结果如下 ###############
[[[(0, 6), (1, 0), (2, 1), (3, 2), (4, 3), (5, 4), (6, 5)], [(7, 6), (8, 0), ...]]]
[[[(1, 6), (2, 0), (3, 1), (4, 2), (5, 3), (6, 4), (7, 5)], [(8, 6), (9, 0), ...]]]
[[[(1, 6), (2, 0), (3, 1), (4, 2), (5, 3), (6, 4), (7, 5)], [(8, 6), (9, 0), ...]]]
[[[(0, 6), (1, 0), (2, 1), (3, 2), (4, 3), (5, 4), (6, 5)], [(7, 6), (8, 0), ...]]]

calendar.TextCalendar(firstweekday=0)

Calendar子类,firstweekday为一个整数,指定一周的第一天,0是星期一(默认),6为星期日

formatmonth(theyear, themonth, w=0, l=0):以多行字符串形式返回一个月的日历。theyear指定年,themonth指定月,w每个单元格宽度,默认0,内部已做处理,最小宽度为2,l每列换l行,默认为0,内部已做处理,至少换行1行

from calendar import TextCalendar

c = TextCalendar(firstweekday=6)
print(c.formatmonth(2018, 8))

############### 打印结果如下 ###############
    August 2018
Su Mo Tu We Th Fr Sa
          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

prmonth(theyear, themonth, w=0, l=0):打印formatmonth(theyear, themonth, w=0, l=0)的结果,无返回值

from calendar import TextCalenadr

c = TextCalendar(firstweekday=6)
c.prmonth(2018, 8)

############### 打印结果如下 ###############
    August 2018
Su Mo Tu We Th Fr Sa
          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

因为无返回值,所以返回的结果为None

formatyear(theyear, w=2, l=1, c=6, m=3):以多行字符串形式返回一年的日历,w每个单元格宽度,默认0,内部已做处理,最小宽度为2,l每列换l行,默认为0,内部已做处理,至少换行1行,c月与月之间的间隔宽度,默认为6,内部已做处理,最小宽度为2,m表示将12个月分为m列

from calendar import TextCalendar

c = TextCalendar(firstweekday=6)
print(c.format(2018, m=4))

############### 打印结果如下 ###############
                                               2018

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

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

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

pryear(theyear, w=2, l=1, c=6, m=3):将formatyear(theyear, w=2, l=1, c=6, m=3)的结果作为返回

calendar.HTMLCalendar(firstweekday=0)

Calendar的子类,firstweekday为一个整数,指定一周的第一天,0是星期一(默认),6为星期日

formatmonth(theyear, themonth, withyear=Ture):返回一个月日历的html内容,withyear是否显示年份,默认为True,即显示年份

from calendar import HTMLCalendar

c = HTMLCalendar(firstweekday=6)
print(c.formatmonth(2018, 8, withyear=False))

############### 打印结果如下 ###############
<table border="0" cellpadding="0" cellspacing="0" class="month">
<tr><th colspan="7" class="month">August</th></tr>
<tr><th class="sun">Sun</th><th class="mon">Mon</th><th class="tue">Tue</th><th class="wed">Wed</th><th class="thu">Thu</th><th class="fri">Fri</th><th class="sat">Sat</th></tr>
<tr><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td><td class="wed">1</td><td class="thu">2</td><td class="fri">3</td><td class="sat">4</td></tr>
<tr><td class="sun">5</td><td class="mon">6</td><td class="tue">7</td><td class="wed">8</td><td class="thu">9</td><td class="fri">10</td><td class="sat">11</td></tr>
<tr><td class="sun">12</td><td class="mon">13</td><td class="tue">14</td><td class="wed">15</td><td class="thu">16</td><td class="fri">17</td><td class="sat">18</td></tr>
<tr><td class="sun">19</td><td class="mon">20</td><td class="tue">21</td><td class="wed">22</td><td class="thu">23</td><td class="fri">24</td><td class="sat">25</td></tr>
<tr><td class="sun">26</td><td class="mon">27</td><td class="tue">28</td><td class="wed">29</td><td class="thu">30</td><td class="fri">31</td><td class="noday">&nbsp;</td></tr>
</table>

formatyear(theyear, width=3):返回一年日历的html内容,width表示将12个月分为width列

from calendar import HTMLCalendar

c = HTMLCalendar(firstweekday=6)
print(c.formatyear(2018, width=4))

formatyearpage(theyear, width=3, css='calendar.css', encoding=None):返回一年日历的html内容,width表示将12个月分为width列,css可自定义css样式,encoding编码方式

from calendar import HTMLCalendar

c = HTMLCalendar(firstweekday=6)
print(c.formatyearpage(2018, width=4))

到此这篇关于Python标准库calendar的使用方法的文章就介绍到这了,更多相关Python calendar使用内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • NumPy中的实用函数clip详解

    NumPy中的实用函数clip详解

    这篇文章主要介绍了NumPy中的实用函数clip详解,NumPy函数clip()用于保留数组中在间隔范围内的值,给定一个范围,范围外的值将剪裁到范围边界,需要的朋友可以参考下的相关资料
    2023-08-08
  • Python Pandas分组聚合的实现方法

    Python Pandas分组聚合的实现方法

    这篇文章主要介绍了Python Pandas分组聚合的实现方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-07-07
  • 利用python中pymysql操作MySQL数据库的新手指南

    利用python中pymysql操作MySQL数据库的新手指南

    PyMySQL是在Python3.x版本中用于连接MySQL服务器的一个库,Python2中是使用mysqldb,这篇文章主要给大家介绍了关于利用python中pymysql操作MySQL数据库的相关资料,需要的朋友可以参考下
    2021-09-09
  • 如何使用Python脚本实现文件拷贝

    如何使用Python脚本实现文件拷贝

    这篇文章主要介绍了如何使用Python脚本实现文件拷贝,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-11-11
  • Python字符串详细介绍

    Python字符串详细介绍

    这篇文章主要介绍了Python字符串详解,本文讲解了字符串相关知识、字符串的一些特性、原始字符串、unicode字符串、字符串的常用操作方法、内建函数列表等内容,需要的朋友可以参考下
    2015-05-05
  • Python实现直方图均衡基本原理解析

    Python实现直方图均衡基本原理解析

    这篇文章主要介绍了Python实现直方图均衡基本原理,本文给大家介绍的非常详细,具有一定的参考借鉴价值 ,需要的朋友可以参考下
    2019-08-08
  • Python可视化神器pyecharts绘制雷达图

    Python可视化神器pyecharts绘制雷达图

    这篇文章主要介绍了Python可视化神器pyecharts绘制雷达图,雷达图是以从同一点开始的轴上表示的三个或更多个定量变量的二维图表的形式显示多变量数据的图形方法
    2022-07-07
  • python 获取剪切板内容的两种方法

    python 获取剪切板内容的两种方法

    这篇文章主要介绍了python 获取剪切板内容的两种方法,帮助大家更好的理解和学习python,感兴趣的朋友可以了解下
    2020-11-11
  • Python爬虫自动化获取华图和粉笔网站的错题(推荐)

    Python爬虫自动化获取华图和粉笔网站的错题(推荐)

    这篇文章主要介绍了Python爬虫自动化获取华图和粉笔网站的错题,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-01-01
  • 使用Python实现跳帧截取视频帧

    使用Python实现跳帧截取视频帧

    这篇文章主要介绍了使用Python实现跳帧截取视频帧,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-05-05

最新评论