山地人

Python 日历(Calendar)

山地人
山地人
2021-07-19

这一篇我们关注calendar类,这个类专门用来管理时间对象。通过这篇教程的学习,你会收获:

  1. 如何利用calendar类制作有趣的日历
  2. 学会使用calendar中丰富的日期查找函数

有趣的日历

一个月的日历

运行沙盒,按照提示输入要查询的年月。

今天要讲解的模块是calender,在使用前需要先导入:import calendar

import calendar
calendar.month(year, month)

上面的小应用使用了calendar.month(year, month)函数。这个函数会返回指定year和month对应的日历文本。

设置一周的开端

通过setfirstweekday函数你可以设置日历中星期几作为一周的开始。

# 星期一作为一周开始
calendar.setfirstweekday(calendar.MONDAY)
# 星期天作为一周开始
calendar.setfirstweekday(calendar.SUNDAY)

这个函数只需要在显示日历之间设置,就会对后续的日历起效。

可以在上面的例子或之后的例子中试试这条设置。

一年的日历

import calendar
calendar.calendar(theyear, w=2, l=1, c=6, m=3)
  • theyear指定年份
  • w 日期宽度
  • l 每个星期占用的行数
  • c 月与月之间的间隔列数
  • m 一行显示几个月

运行沙盒,按照提示输入要查询的年月。

闰年

calender模块有两个和闰年相关的函数

  • calendar.isleap(year) 检查year是否为闰年
  • calendar.leapdays(y1, y2)返回从[y1, y2)区间中的包含的闰年出现的次数。

运行沙盒,查看结果。

日历相关的查询

查询日期对应星期几

查看指点日期是一周的第几天,返回0-6代表周一到周日。

from calendar import weekday
weekday(year, month, day)

运行沙盒,查看结果。

查看指定月份的天数

查询指点年份和月份的对应天数。

from calendar import monthrange
monthrange(year, month)

运行沙盒,查看结果。

自制中文日历

from calendar import monthcalendar
monthcalendar(year, month)

monthcalendar函数返回指定年份和月份的日历列表,利用这个列表中的数据我们可以定制自己的日历

下面的演示,是最简单的使用场景

运行沙盒,查看结果。

这里每一行输出的结果也是一个列表,其中为0的项表示空数据。我们在这个版本的基础上进行升级

运行沙盒,查看结果。

至此,本篇教程也到了该和你说再见的时候了,我们下期再见。

学完本篇互动教程,如果你觉得体验不错,可以把网页链接发送给你的小伙伴,让他/她也来感受一下。当然,你也可以继续看看网站上其他的的互动教程,希望`idev365`能够给你带来收获。

学习教程的过程中碰到了问题,或者对idev365有什么改进意见和想法,欢迎加入idev365微信内测群,和山地人交流你的想法。