Python calendar模块详情
作者:盆友圈的小可爱 发布时间:2023-08-20 23:04:59
复习回顾:
Python 对于时间日期操作提供了很多方法,我们前面已经学习了2个模块:
基于Unix 时间戳范围限制在1970~2038年的时间处理的time模块
提供六个类对时间日期更加人性化处理的datetime模块
在日常生活工作中,除了每一天时间及日期Python
都提供了具体的模块来进行处理,那么日期的集合要使用什么模块来处理呢?
Python 专门为了处理日历提供了calendar日历模块。那么,本期我们来学习一下calender模块相关方法及属性
1. calendar 模块概述
calendar
模块提供与日历相关的实用函数,帮助我们得到与日历相关的信息。
1.1calendar 特点
calendar
模块是基于datetime.date.weekday()
对计算每一周的周数calendar
默认星期一是每一周的第一天,星期天是一周的最后一天calendar
提供calendar.setfirstweeksday()
来更改指定星期几为一周的第一天
1.2calendar 类结构
我们可以查看
Python
内置库-calendar.py
文件calendar
主要提供三大类:Calendar
、TextCalendar
、HTMLCalendar
其中,
calendar
是TextCalendar
和HTMLCalendar
的基类
1.3calendar 使用步骤
calendar
是内置库,直接使用import
导入
import calendar
2. calendar 相关方法
2.2calendar 模块相关方法
方法 | 说明 |
---|---|
calendar.firstweekday() | 设置每星期的第一天数值 |
calendar.isleap(year) | 判断是闰年,则返回Ture |
calendar.leapdays(y1,y2) | 计算要y1与y2的闰年数 |
calendar.weekday(year,month,day) | 返回某日是星期几 |
calendar.weekheader(n) | 星期几的缩写名的头 |
calendar.mothrange(year,month) | 计算出指定年份的某月第一天是星期几和天数 |
calendar.prmonth(theyear,themonth,w=0,1=0) | 格式化打印指定年的某月的日历 |
calendar.month(theyear,themonth,w=0,1=0) | 使用TextCalendar类formation()以多行字符串形式返回月份日历 |
calendar.prcal(year,w=1,1=0,c=6,m=3) | 格式化打印出整年的日历 |
calendar.calendar(year,w=1,1=0,c=6,m=3) | 以整年3列的日历多行字符串的形式的日历 |
2.3calendar 模块属性
方法 | 说明 |
---|---|
calendar.day_name | 当前语言环境下星期几的数组 |
calendar.day_abbr | 当前语言环境下星期几的缩写 |
calendar.month_name | 当前语言下一年的月份数组 |
calendar.month_abbr | 当前语言下一年的月份缩写 |
2.4calendar 模块提供5个类
类方法 | 说明 |
---|---|
calendar.Calendar(firstweekday=0) | 创建Calendar对象,默认周一为第一天 |
calendar.TextCalendar(firstweekday=0) | 生成纯文本日历对象 |
calendar.HTMLCalendar(firstweekday=0) | 生成HTML日志对象 |
calendar.LocaleTextCalenda(firstweekday=0,locale=None) | 语言环境名称 |
calendar.LocaleHTMLCalendar(firstweekday=0,locale=None) | 语言环境名称 |
2.5calendar.Calendar类实例相关方法
方法 | 说明 |
---|---|
cal.itermonthdates(year,month) | 返回一个year年month月的日期的迭代器 |
cal.iterweekdats() | 返回为一星期的数字的迭代器 |
cal.itermonthdays(year,month) | 返回的日期为当月每一天的日期对应的天数,对于不在当月的日期,会显示0 |
cal.itermonthdays2(year,month) | 返回一个由日期和代表星期几的数字组成的元组 |
cal.itermonthdays3(year,month) | 返回一个由年月日组成的元组 |
cal.itermonthdays4(year,month) | 返回一个由年月日和星期几的数字组成的元组 |
cal.monthdatescalendar(year,month) | 返回一个由datetime.date对象组成的年月的周列表 |
cal.monthdays2calendar(year,month) | 返回一个由日期数字和周几的数字的二元元组 |
cal.monthdayscalendar(year,month) | 返回一个由七个日期数字的组成周列表 |
cal.yeardatescalendar(year,width=3) | 返回可以用来格式化的指定年月的数据列表 |
cal.yeardays2calendar(year,width=3) | 返回用来模式化的指定年月的数据。在这个月的日期为0,周列表由日期和星期数组成的元组 |
cal.yeardayscalendar(year,width=3) | 返回一个周列表是日期数字组成可以用来模式化的指定年月的数据 |
2.6calendar.TextCalendar类实例相关方法
方法 | 说明 |
---|---|
tc.formatmonth(theyear,themonth,w=0,1=0) | 以多行字符串来表示指定年月的日历 |
tc.prmonth(theyear,themonth,w=0,1=0) | 格式化打印一个月的日历 |
tc.formatyear(theyear,w=0,1=1,c=6,m=3) | 返回一个m列的日历 |
tc.pryear(theyear,w=0,1=1,c=6,m=3) | 格式化打印一整年的日历 |
2.7calendar.HTMLCalendar类实例相关方法
方法 | 说明 |
---|---|
htl.formatmonth(theyear,themonth,withyear=True) | 返回一个HTML表格的指定的年月日历 |
htl.formatyear(theyear,width=3) | 返回HTML指定年份的日历 |
htl.formatyearpage(theyear,width=3,css='calendar.css',encoding=None) | 返回一个完整的HTML页面作为指定的年份日历 |
calendar.HTMLCalendar类实例相关属性
2.8calendar.HTMLCalendar类实例相关属性
方法 | 说明 |
---|---|
htl.cssclasses | 星期一到星期天的CSS class 列表 |
htl.cssclass_noday | 工作日的CSS类在上个月或下个月发生 |
htl.cssclasses_weekday_head | 用于标题行中工作日名称的css列表 |
htl.cssclass_month_head | 月份的CSS列表标题 |
htl.cssclass_month | 某个月的月历CSS类 |
htl.cssclass_year | 某个年的年历CSS类 |
htl.cssclasses_year_head | 年历的CSS列表标题 |
3. 实操
打印2021年年历
import calendar
# 打印2021年历
print(calendar.calendar(2021))
打印指定某年的月历
print(calendar.month(2021,11))
4、总结
我们对calendar模块日历相关的方法的学习,calendar模块主要提供3个主要类Calendar、TextCalendar、HTMLCalendar。我们可以更好地以字符串或者HTML形式打印出指定的日历。
来源:https://juejin.cn/post/7026680117770321950
猜你喜欢
- 2017年底,Tensorflow 推出Lite版本,可实现移动端的快速运行,其中,一个很关键的问题,如何把现有分类模型(.pb) 转换为(
- Oracle shutdown的时候突然断电,导致使用sql/plus启动时无法连接到数据库,具体描述为:connection can no
- MatrixOne是一个新一代超融合异构数据库,致力于打造单一架构处理TP、AP、流计算等多种负载的极简大数据引擎。MatrixOne由Go
- 谈到“登录”,大多数人脑海中会立刻浮现出那个“两小框:一用户名,一密码,外加一按钮”的经典豆腐块, 这样的功能模块在互联网上屡见不鲜, 成为
- 前言21世纪是信息的世纪,综合国力的竞争在很大程度上是信息的竞争,更是信息利用率的竞争。近年来,随着“数字地球”和“数字国土”战略的提出和实
- 在小飞的博客上看到他写了一篇关于reset.css的文章,文章中关于css的部分分析的非常不错,但对于文中关于强调把CSS分别配置,对每一个
- 不知道做网络程序的朋友是否重视COOKIES作用域对于多域名或 主域与WWW二级域名同时共用一站点,设置Cookies的作用域,让整个网站用
- 上文:栅格:一以贯之Jacci Howard Bear 的英文原文:http://desktoppub.about.com/od/grids
- 很多现代的浏览器在地址栏的右边有个搜索框,默认的安装有 Google 搜索等。如下图所示: 其实这是 OpenSearch 的一
- 在日常开发中,我们进行用户登录的时候,大部分情况下都会使用 session 来保存用户登录信息,并以此为依据判断用户是否已登录。但其实 HT
- 如何用ADO批量更新记录?是的,ADO有这项功能,不过好像用的人不太多(不了解还是不会用呢?):<HTML> &nbs
- 这个格式是我自创的,经常有人问我为什么,这里做个简单总结:1、分类,一个模块或者同类功能定义为一类定义,每类定义之间用段落隔开。2、分级,每
- 可及,通俗的说是“可以达到”,加上主语和宾语,在“交互设计”这个大的语境下,含义应该是“用户可以达到自己的操作目标”,这不是和“有效性—用户
- 经常在工作中会使用到XPath的相关知识,但每次总会在一些关键的地方不记得或不太清楚,所以免不了每次总要查一些零碎的知识,感觉即很烦又浪费时
- 本文实例讲述了PHP实现的redis主从数据库状态检测功能。分享给大家供大家参考,具体如下:实例:<?php/** * 检测多个主从r
- #!/usr/bin/python## get subprocess module import subprocess ## ca
- 基本开发环境· Python 3.6· Pycharm相关模块使用目标网页分析输入想看的小说内容,点击搜索这里会返回很多结果,我只选择第一个
- 内容摘要:有很多朋友虽然安装好了mysql但却不知如何使用它。在这篇文章中我们就从连接mysql、修改密码、增加用户等方面来学习一些mysq
- 前言本文主要介绍了关于Python+selenium自动化环境搭建的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧
- js汉字简繁转换源代码:<html> <head> <title>汉字简繁转换工具_asp之家</