欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

python编程开发时间序列calendar模块示例详解

程序员文章站 2022-06-25 10:40:08
目录calendar模块设置每周第一天-setfirstweekday1、默认情况:礼拜一是第一天2、设置任意一天是否闰年-isleap年份间的闰年数-leapdays(y1, y2)星期几-week...

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

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

中文官网地址: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年的完整日历:

python编程开发时间序列calendar模块示例详解

设置每周第一天-setfirstweekday

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

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

python编程开发时间序列calendar模块示例详解

2、设置任意一天

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

python编程开发时间序列calendar模块示例详解

是否闰年-isleap

查看一个年份是否是闰年。是则返回true,否则返回false

python编程开发时间序列calendar模块示例详解

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

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

python编程开发时间序列calendar模块示例详解

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

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

0:星期1

1:星期2

2:星期3

python编程开发时间序列calendar模块示例详解

monthrange(year, month)

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

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

python编程开发时间序列calendar模块示例详解

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

python编程开发时间序列calendar模块示例详解

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

返回某个月的日历矩阵:

  • 每行代表1个星期
  • 默认从周一开始,比如11月份的1号刚好是周一
  • 此月份外的日子由零表示

python编程开发时间序列calendar模块示例详解

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

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

下面是默认的情况:

python编程开发时间序列calendar模块示例详解

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

python编程开发时间序列calendar模块示例详解

年的日历-calendar.calendar(year)

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

python编程开发时间序列calendar模块示例详解

格式化输出日历

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

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

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

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

m:将月份分成m个列

python编程开发时间序列calendar模块示例详解

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

python编程开发时间序列calendar模块示例详解

python编程开发时间序列calendar模块示例详解

以上就是python编程开发时间序列calendar模块示例详解的详细内容,更多关于python时间序列的资料请关注其它相关文章!