【Python】Python时间序列之calendar模块

公众号:尤而小屋
作者:Peter
编辑:Peter

大家好,我是Peter~

在前两篇关于Python时间序列文章中,Peter详细介绍了time和datetime模块的使用。这两个模块更多的是用于处理时间和日期相关的问题。

本文介绍的是第三个模块calendar,则主要是用于解决日历方面的问题。

8000字:拿捏Python时间系列之datetime模块

6大模块拿下Python时间序列

7727f8587fee9f796c07593fd7d0abb8.png

中文官网地址:https://docs.python.org/zh-cn/3/library/calendar.html

calendar模块

该模块定义了很多类型,主要包括:Calendar、TextCalendar、HTMLCalendar,其中 Calendar 是 TextCalendar 和 HTMLCalendar 的基类,这些类有着十分丰富的日历处理方法。

同时ISO 8601标准还规定了 0 和 负数年份。0年指公元前1年, -1年指公元前2年,依此类推。使用之前先进行导入:

import calendar

首先我们可以看看2021年的完整日历:

0b053585c469e932a3be6fe32d600e38.png

设置每周第一天-setfirstweekday

默认情况下:0 表示星期一,6 表示星期天。我们可以通过setfirstweekday()来设置一周的第一天为星期天 (6) 或者其它任意一天

1、默认情况:礼拜一是第一天

894178df5e4dd812f8d025976ee7099f.png

2、设置任意一天

下面的例子中我们设置周六作为第一天

cf4067255b72f2cb67e586794c347cf2.png

是否闰年-isleap

查看一个年份是否是闰年。是则返回True,否则返回False

0f9fbeeec558ed7b2e9402137ab9766e.png

年份间的闰年数-leapdays(y1, y2)

查看两个年份之间有多少闰年。比如第二个例子中,从2000年开始到2021年共有6个闰年

91d8e695112b1ee5f70026b903e44880.png

星期几-weekday(year, month, day)

查看一个具体的日期是星期几。比如第二例子中,11月1号是星期一,用0表示

  • 0:星期1

  • 1:星期2

  • 2:星期3

f234f2939fc8cdd0857fb5dc5725f84c.png

monthrange(year, month)

返回指定年、月份第一天是星期几和这个月的天数,具体示例如下:

10月份的第一天是星期五,11月份的第一天是星期一(0代表周一)

1821253d802a75a3c90dfad79a64ae23.png

通过万年历来验证下:11.1刚好是星期一

a747fcc7029309e5dd1af020eff5c5b3.png

月的日历矩阵-monthcalendar(year, month)

返回某个月的日历矩阵:

  • 每行代表1个星期

  • 默认从周一开始,比如11月份的1号刚好是周一

  • 此月份外的日子由零表示

41b43cf91cdc905574c30492a422f95c.png

月的日历-prmonth(year, month, w, l)

返回的是一个月的日历,每日宽度间隔为 w 字符,l 是每星期的行数

下面是默认的情况:

7b7e0a2e817044cd3ec5a4cc7b3190c3.png

可以改变参数w和l:相当于是一个控制列宽,一个控制行高

efd4ca55bbe1a34994ff6fbf664f1f96.png

年的日历-calendar.calendar(year)

全部使用默认参数,查看某年的完整日历:

44e7151f97e42f4a36f9b59226d746da.png

格式化输出日历

在上面输出年的日历的结果中都是采用的默认参数形式。实际上calendar方法是存在多个参数的:

  • w:每个单元格宽度,默认是2

  • l:每列换行数,默认是1

  • c:月和月之间的间隔宽度,默认是6

  • m:将月份分成m个列

c3708cb55fab851cfec18b8d9577b0a0.png

改变多个参数后显示的效果:

668095d5c2cb4514fcb12a6bbf2fa688.png 590e1d84e1cfc8ca68d355b8f940d02a.png 7f3d8c48fc282fbe22e8b8cd0a4083cf.png
 
 
 
 
 
 
 
 
往期精彩回顾




适合初学者入门人工智能的路线及资料下载机器学习及深度学习笔记等资料打印机器学习在线手册深度学习笔记专辑《统计学习方法》的代码复现专辑
AI基础下载黄海广老师《机器学习课程》视频课黄海广老师《机器学习课程》711页完整版课件

本站qq群554839127,加入微信群请扫码:

318b2c36dc13c46d842415d84c579f01.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值