进阶第十课 Python模块之calendar
Posted 驼背蜗牛
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了进阶第十课 Python模块之calendar相关的知识,希望对你有一定的参考价值。
calendar,是与日历相关的模块。calendar模块文件里定义了很多类型,主要有Calendar,TextCalendar以及HTMLCalendar类型。其中,Calendar是TextCalendar与HTMLCalendar的基类。该模块文件还对外提供了很多方法,例如:calendar,month,prcal,prmonth之类的方法。
星期一是默认的每周第一天,星期天是默认的最后一天。更改设置需调用calendar.setfirstweekday()函数。
可以看这个链接:
https://www.cnblogs.com/keqipu/p/7228502.html
>>> import calendar >>> dir(calendar) [\'Calendar\', \'EPOCH\', \'FRIDAY\', \'February\', \'HTMLCalendar\', \'IllegalMonthError\', \'IllegalWeekdayError\', \'January\', \'LocaleHTMLCalendar\', \'LocaleTextCalendar\', \'MONDAY\', \'SATURDAY\', \'SUNDAY\', \'THURSDAY\', \'TUESDAY\', \'TextCalendar\', \'WEDNESDAY\', \'_EPOCH_ORD\', \'__all__\', \'__builtins__\', \'__cached__\', \'__doc__\', \'__file__\', \'__loader__\', \'__name__\', \'__package__\', \'__spec__\', \'_colwidth\', \'_locale\', \'_localized_day\', \'_localized_month\', \'_spacing\', \'c\', \'calendar\', \'datetime\', \'day_abbr\', \'day_name\', \'different_locale\', \'error\', \'firstweekday\', \'format\', \'formatstring\', \'isleap\', \'leapdays\', \'main\', \'mdays\', \'month\', \'month_abbr\', \'month_name\', \'monthcalendar\', \'monthrange\', \'prcal\', \'prmonth\', \'prweek\', \'repeat\', \'setfirstweekday\', \'sys\', \'timegm\', \'week\', \'weekday\', \'weekheader\']
1、calendar.calendar(year,w=2,l=1,c=6)
返回一个多行字符串格式的year年年历,3个月一行,间隔距离为c。每日宽度间隔为w字符。每行长度为21*
W+18+2* C。l是每星期行数。
calendar.calendar(2018,w=2,l=1,c=6) \' 2018\\n\\n January February March\\nMo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su\\n 1 2 3 4 5 6 7 1 2 3 4 1 2 3 4\\n 8 9 10 11 12 13 14 5 6 7 8 9 10 11 5 6 7 8 9 10 11\\n15 16 17 18 19 20 21 12 13 14 15 16 17 18 12 13 14 15 16 17 18\\n22 23 24 25 26 27 28 19 20 21 22 23 24 25 19 20 21 22 23 24 25\\n29 30 31 26 27 28 26 27 28 29 30 31\\n\\n April May June\\nMo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su\\n 1 1 2 3 4 5 6 1 2 3\\n 2 3 4 5 6 7 8 7 8 9 10 11 12 13 4 5 6 7 8 9 10\\n 9 10 11 12 13 14 15 14 15 16 17 18 19 20 11 12 13 14 15 16 17\\n16 17 18 19 20 21 22 21 22 23 24 25 26 27 18 19 20 21 22 23 24\\n23 24 25 26 27 28 29 28 29 30 31 25 26 27 28 29 30\\n30\\n\\n July August September\\nMo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su\\n 1 1 2 3 4 5 1 2\\n 2 3 4 5 6 7 8 6 7 8 9 10 11 12 3 4 5 6 7 8 9\\n 9 10 11 12 13 14 15 13 14 15 16 17 18 19 10 11 12 13 14 15 16\\n16 17 18 19 20 21 22 20 21 22 23 24 25 26 17 18 19 20 21 22 23\\n23 24 25 26 27 28 29 27 28 29 30 31 24 25 26 27 28 29 30\\n30 31\\n\\n October November December\\nMo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su\\n 1 2 3 4 5 6 7 1 2 3 4 1 2\\n 8 9 10 11 12 13 14 5 6 7 8 9 10 11 3 4 5 6 7 8 9\\n15 16 17 18 19 20 21 12 13 14 15 16 17 18 10 11 12 13 14 15 16\\n22 23 24 25 26 27 28 19 20 21 22 23 24 25 17 18 19 20 21 22 23\\n29 30 31 26 27 28 29 30 24 25 26 27 28 29 30\\n 31\\n\'
2、calendar.firstweekday( )
返回当前每周起始日期的设置。默认情况下,首次载入caendar模块时返回0,即星期一。
>>> calendar.firstweekday()
0
3、calendar.isleap(year)
是闰年返回True,否则为false。
>>> calendar.isleap(2008) True >>> calendar.isleap(2012) True >>> calendar.isleap(2018) False >>> calendar.isleap(year=2012) True
4、calendar.leapdays(y1,y2)
返回在Y1,Y2两年之间的闰年总数。
>>> calendar.leapdays(2000,2008) 2 >>> calendar.leapdays(2000,2009) 3 >>> calendar.leapdays(2000,2002) 1 >>> calendar.leapdays(2001,2004) 0
可以从上述示例中看出,leapdays后面两个参数,实际抽取时,不包含第二个参数。即第二个参数即使是闰年,也不做统计。
5、calendar.month(year,month,w=2,l=1)
返回一个多行字符串格式的year年month月日历,两行标题,一周一行。每日宽度间隔为w字符。每行的长度为7* w+6。l是每星期的行数。
>>> calendar.month(2018,4,w=2,l=1) \' April 2018\\nMo Tu We Th Fr Sa Su\\n 1\\n 2 3 4 5 6 7 8\\n 9 10 11 12 13 14 15\\n16 17 18 19 20 21 22\\n23 24 25 26 27 28 29\\n30\\n\'
6、calendar.monthcalendar(year,month)
返回一个整数的单层嵌套列表。每个子列表装载代表一个星期的整数。Year年month月外的日期都设为0;范围内的日子都由该月第几日表示,从1开始。
>>> calendar.monthcalendar(2018,4)
[[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, 0, 0, 0, 0, 0, 0]]
2018-4-1是周日,所以在第一个字列表,前六天都是2018年3月的,也就是都是0;同理4月30日之后的也都是0。
7、calendar.monthrange(year,month)
返回两个整数。第一个是该月的星期几的日期码,第二个是该月的日期码。日从0(星期一)到6(星期日);月从1到12。
>>> calendar.monthrange(2018,4)
(6, 30)
?
8、calendar.prcal(year,w=2,l=1,c=6)
相当于 print calendar.calendar(year,w,l,c).
9、calendar.prmonth(year,month,w=2,l=1)
相当于 print calendar.calendar(year,w,l,c)。
10、calendar.setfirstweekday(weekday)
设置每周的起始日期码。0(星期一)到6(星期日)。
>>> calendar.firstweekday () 0 >>> calendar.setfirstweekday(6) >>> calendar.firstweekday() 6
之后我关闭了IDLE后重新启动,再次执行firstweekday看下结果
>>> import calendar >>> calendar.firstweekday() 0
恢复原样。。
11、calendar.timegm(tupletime)
和time.gmtime相反:接受一个时间元组形式,返回该时刻的时间戳。
>>> import time >>> time.time() 1523336550.8926055 >>> time.gmtime(1523336550.8926055) time.struct_time(tm_year=2018, tm_mon=4, tm_mday=10, tm_hour=5, tm_min=2, tm_sec=30, tm_wday=1, tm_yday=100, tm_isdst=0) >>> import calendar >>> calendar.timegm((2018, 4, 10, 5, 2, 30, 1, 100, 0)) 1523336550
12、calendar.weekday(year,month,day)
返回给定日期的日期码。0(星期一)到6(星期日)。月份为 1(1月)到 12(12月)
>>> calendar.weekday(2018,4,1)
6
2018-4-1是周日,所以返回值是6。
以上是关于进阶第十课 Python模块之calendar的主要内容,如果未能解决你的问题,请参考以下文章