当前位置:   article > 正文

Python-标准库calendar的使用_py利用标准calendar

py利用标准calendar

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

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

Calendar

模块方法

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

# 将星期日设置为一周第一天
calendar.setfirstweekday(firstweekday=6)
  • 1
  • 2
  • 3
  • 4
  • firstweekday():返回一周的第一天,0是星期一,…,6为星期日
import calendar

# 将星期日设置为一周第一天
calendar.setfirstweekday(firstweekday=6)
print(calendar.firstweekday())      # 6
  • 1
  • 2
  • 3
  • 4
  • 5
  • isleap(year):判断指定是否是闰年,闰年为True,平年为False
import calendar

# 2018年是平年,所以为False
print(calendar.isleap(2018))        # False
# 2008年是如年,所以为True
print(calendar.isleap(2008))        # True
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • leapdays(y1, y2):返回y1y2年份之间的闰年数量,y1y2皆为年份。包括起始年,不包括结束年:
import calendar

# 2008到2011之间只有2008年是闰年,所以数量为1
print(calendar.leapdays(2008, 2011))    # 1
  • 1
  • 2
  • 3
  • 4
  • weekday(year, month, day):获取指定日期为星期几
import calendar

# 2018-08-08正是星期三,千万别忘记2代表的是星期三
print(calendar.weekday(2018, 8, 8))     # 2
  • 1
  • 2
  • 3
  • 4
  • weekheader(n):返回包含星期的英文缩写,n表示英文缩写所占的宽度
import calendar

print(calendar.weekheader(4))

############### 打印结果如下 ###############
Mon  Tue  Wed  Thu  Fri  Sat  Sun 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • monthrange(year, month):返回一个由一个月第一个天的星期与当前月的天数组成的元组
import calendar

# 查看日历可以知道,08-01正是星期三,并且8月共31天
print(2018, 8)      # (2, 31)
  • 1
  • 2
  • 3
  • 4
  • 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]]
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 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 <
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/716345
推荐阅读
相关标签
  

闽ICP备14008679号