【python基础】—calendar模块

文章目录

  • 前言
  • 一、calendar模块方法
    • 1.firstweekday()
    • 2.setfirstweekday(firstweekday)
    • 3.isleap(year)
    • 4.leapdays(y1, y2)
    • 5.weekday(year, month, day)
    • 6.monthrange(year, month)
    • 7.weekheader(n)
    • 8.monthcalendar(year, month)
    • 9.prmonth(theyear, themonth, w=0, l=0)
    • 10.prcal(year, w=0, l=0, c=6, m=3)
    • 11.day_name
    • 12.month_name
  • 二、Calendar类
    • 1.iterweekdays()
    • 2.itermonthdates(year, month)
    • 3.itermonthdays(year, month)
  • 三、TextCalendar 类
    • 1.formatmonth(theyear, themonth, w=0, l=0)
    • 2.formatyear(theyear, w=2, l=1, c=6, m=3)


前言

calendar模块是日历模块,允许你输出类似Unix cal程序的日历,并提供与日历相关的其他有用功能。
主要由Calendar类与一些模块方法构成。其中,Calendar类是TextCalendar与HTMLCalendar的基类。


一、calendar模块方法

1.firstweekday()

含义:返回当前每周的第一天。
返回:默认情况下,返回0,即星期一。

import calendar
print(calendar.firstweekday()) #返回:0

2.setfirstweekday(firstweekday)

含义:指定一周的第一天。
参数 :通过常量 MONDAY、TUESDAY、WEDNESDAY、THURSDAY、FRIDAY、SATURDAY 和 SUNDAY 设置星期;
返回:0-6,其中 0 表示星期一,以此类推6表示星期日。

import calendar

#将星期日设置为一周的第一天
calendar.setfirstweekday(firstweekday=6)
print(calendar.firstweekday()) #返回:6,表示星期日为一周的第一天。

3.isleap(year)

含义:判断是否是闰年。
返回:闰年为True,平年为False。

import calendar
calendar.isleap(2023) # 返回:False。

4.leapdays(y1, y2)

含义:返回y1与y2年份之间的闰年数量。
参数:y1与y2皆为年份。包括起始年,不包括结束年。
返回:int。

import calendar
calendar.leapdays(2002,2023) # 返回:5

5.weekday(year, month, day)

含义:获取指定日期为星期几。
返回:0-6,其中 0 表示星期一,以此类推6表示星期日。

import calendar
calendar.weekday(2024,7,3) #返回:2,表示星期三。

6.monthrange(year, month)

含义:返回元组, 第一个值代表给定月份第一天的星期;第二个值代表给定月份有多少天。

import calendar
calendar.monthrange(2024,7) #返回:(0, 31)

7.weekheader(n)

含义:返回包含星期的英文缩写。
参数:n表示返回缩写的长度。

import calendar
calendar.weekheader(4) #返回:'Sun  Mon  Tue  Wed  Thu  Fri  Sat '

8.monthcalendar(year, month)

含义:返回表示一个月的日历的矩阵(不是当月份的天数为0),每一行代表一周; 可以通过setfirstweekday() 改变默认值;

import calendar
calendar.monthcalendar(2024,7) 
# 返回:
# [[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, 31, 0, 0, 0]]

9.prmonth(theyear, themonth, w=0, l=0)

含义:打印一个月的日历
参数:

  • theyear:指定年份。
  • themonth:指定月份。
  • w:日之间的间隔w个字符,默认0。
    l:星期之间的行数,默认0。
import calendar
calendar.prmonth(2024,7)

在这里插入图片描述

10.prcal(year, w=0, l=0, c=6, m=3)

含义:打印一年的日历
参数:

  • year:指定年份。
  • w:日之间的间隔w个字符,默认0。
  • l:星期之间的行数,默认0。
  • c:月之间的宽度。
  • m:将12个月分为m列。
import calendar
calendar.prcal(2024,m=4)

在这里插入图片描述

11.day_name

含义:返回星期列表

import calendar
[day_name for day_name in calendar.day_name]
# 返回:['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday']

12.month_name

含义:返回月份列表

import calendar
[month_name for month_name in calendar.month_name]
# 返回:
#['',
# 'January',
# 'February',
# 'March',
# 'April',
# 'May',
# 'June',
# 'July',
# 'August',
# 'September',
# 'October',
# 'November',
# 'December']

二、Calendar类

Calendar对象提供了一些可被用于准备日历数据格式化的方法。 这个类本身不执行任何格式化操作。

1.iterweekdays()

获取一周的数字的迭代器。

from calendar import Calendar

car=Calendar()
weeks=[item for item in car.iterweekdays()]
print(weeks) # 返回:[0, 1, 2, 3, 4, 5, 6]

2.itermonthdates(year, month)

获取一个月日期的迭代器。

from calendar import Calendar
car=Calendar()
date=[item for item in car.itermonthdates(2024,7)]
print(date)

在这里插入图片描述

3.itermonthdays(year, month)

返回一个月天数的迭代器。

from calendar import Calendar
car=Calendar()
days=[item for item in car.itermonthdays(2024,7)]
print(days) 

在这里插入图片描述

三、TextCalendar 类

TextCalendar 对象提供了一些生成纯文本日历的方法。

1.formatmonth(theyear, themonth, w=0, l=0)

含义:返回一个月的日历。
参数:

  • theyear:指定年。
  • themonth:指定月。
  • w:日期之间宽度。
  • l:指定每行日期之间的行数。
from calendar import TextCalendar

textcar = TextCalendar()
print(textcar.formatmonth(2024, 7))

在这里插入图片描述

2.formatyear(theyear, w=2, l=1, c=6, m=3)

含义:返回m 个列的日历。
参数:

  • theyear:指定年份。
  • w:日之间的间隔w个字符,默认0。
  • l:星期之间的行数,默认0。
  • c:月之间的宽度。
  • m:将12个月分为m列。
from calendar import TextCalendar

textcar = TextCalendar()
print(textcar.formatyear(20204,m=4))

在这里插入图片描述


参考文章:
https://blog.csdn.net/youku1327/article/details/106227420

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/771253.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

堆结构、堆排序

堆 是完全二叉树,类似这种样式的 而这种有右子节点,没左子节点的就不是完全二叉树 分为大根堆和小根堆 大根堆是二叉树里每一颗子树的父节点都是这颗子树里最大的,即每一棵子树最大值是头节点的值 小根堆相反 把数组中从0开始的一段数人…

【等保2.0是什么意思?等保2.0的基本要求有哪些? 】

一、等保2.0是什么意思? 等保2.0又称“网络安全等级保护2.0”体系,它是国家的一项基本国策和基本制度。在1.0版本的基础上,等级保护标准以主动防御为重点,由被动防守转向安全可信,动态感知,以及事前、事中…

Stable Diffusion图像的脸部细节控制——采样器全解析

文章目录 艺术地掌控人物形象好易智算原因分析为什么在使用Stable Diffusion生成全身图像时,脸部细节往往不够精细? 解决策略 局部重绘采样器总结 艺术地掌控人物形象 在运用Stable Diffusion这一功能强大的AI绘图工具时,我们往往会发现自己…

开源的基于图像识别本地实名认证系统(本项目不借助任何api) v1.0

前言: 本项目主要是代替昂贵的实名认证服务api或者sdk,目前仍然存在很多缺点 一、具体介绍 1.组成: 人脸识别服务器分为两部分: (1)、http服务端 server.py共有四个函数: DrawFaceinIdCard:用户上传身份证图片后,服务端会对身份证进行抠人像和ocr处理…

澳蓝荣耀时刻,6款产品入选2024年第一批《福州市名优产品目录》

近日,福州市工业和信息化局公布2024年第一批《福州市名优产品目录》,澳蓝自主研发生产的直接蒸发冷却空调、直接蒸发冷却组合式空调机组、间接蒸发冷水机组、高效间接蒸发冷却空调机、热泵式热回收型溶液调湿新风机组、防火湿帘6款产品成功入选。 以上新…

正交的拉丁方阵(MOLS)

在组合数学中,如果两个同阶的拉丁方阵叠加后,每个位置上的有序对条目都是唯一的,则这两个拉丁方阵被称为正交的。 如果一组同阶的拉丁方阵中,任意两个方阵都是正交的,则这组方阵被称为一组相互正交的拉丁方阵&#xf…

Prometheus 监控Kubelet的运行状态

kubelet通过/metrics暴露自身的指标数据。kubelet有两个端口都提供了这个url,一个是安全端口(10250),一个是非安全端口(10255,kubeadm安装的集群该端口是关闭的)。安全端口使用https协议&#x…

SpringMVC的架构有什么优势?——控制器(一)

文章目录 控制器(Controller)1. 控制器(Controller):2. 请求映射(Request Mapping):3. 参数绑定(Request Parameters Binding):4. 视图解析器(View Resolver):5. 数据绑定(Data Binding):6. 表单验证(Form Validation)…

02-部署LVS-DR群集

1.LVS-DR工作原理 LVS-DR模式,Director Server作为群集的访问入口,不作为网购使用,节点Director Server 与 Real Server 需要在同一个网络中,返回给客户端的数据不需要经过Director Server 为了响应对整个群集的访问,…

【JS】过滤数组中空值——arr.filter(Boolean)

前言:过滤数组中的空值,包括 (undefined、null、“”、0、false、NaN) Boolean函数可以将一个值转换为布尔值,空值会被转换为false,非空值会被转换为true 方法: const arr [1, 2, ""…

Redis 典型应用——分布式锁

一、什么是分布式锁 在一个分布式的系统中,也会涉及到多个节点访问同一个公共资源的情况,此时就需要通过锁来做互斥控制,避免出现类似于 "线程安全" 的问题; 而 Java 中的 synchronized,只能在当前进程中生…

线上问题定位分析宝典——Linux中定位JVM问题常用命令

查询Java进程ID #ps axu | grep java #ps elf | grep java查看机器负载及CPU信息 #top -p 1(进程ID) #top (查看所有进程)获取CPU飙升线程堆栈 1. top -c 找到CPU飙升进程ID; 2. top -Hbp 9702(替换成进程ID) 找到CPU飙升线程ID; 3. $ printf &quo…

ubuntu20.04配置调试工具

1.准备工作&#xff1a;安装g或者gdb sudo apt updatesudo apt install gg --versionsudo apt install gdbgdb --version 2.配置环境 2.1在本地新建一个main.cpp #include <iostream> #include <vector> #include <string>using namespace std;int main(…

【SpringBoot3学习 | 第2篇】SpringBoot3整合+SpringBoot3项目打包运行

文章目录 一. SpringBoot3 整合 SpringMVC1.1 配置静态资源位置1.2 自定义拦截器&#xff08;SpringMVC配置&#xff09; 二. SpringBoot3 整合 Druid 数据源三. SpringBoot3 整合 Mybatis3.1 Mybatis整合3.2 声明式事务整合配置3.3 AOP整合配置 四. SpringBoot3 项目打包和运行…

界面材料知识

界面材料是用于填充芯片和散热器之间的空隙&#xff0c;将低导热系数的空气挤出&#xff0c;换成较高导热系数的材料&#xff0c;以提高芯片散热能力。参考下图 图片来源网上 热阻是衡量界面材料性能最终的参数&#xff0c;其中与热阻有关的有&#xff1a; 1、导热系数&#x…

(三十一)Flask之wtforms库【剖析源码下篇】

每篇前言&#xff1a; &#x1f3c6;&#x1f3c6;作者介绍&#xff1a;【孤寒者】—CSDN全栈领域优质创作者、HDZ核心组成员、华为云享专家Python全栈领域博主、CSDN原力计划作者 &#x1f525;&#x1f525;本文已收录于Flask框架从入门到实战专栏&#xff1a;《Flask框架从入…

使用java stream对集合中的对象按指定字段进行分组并统计

一、概述 有这样一个需求&#xff0c;在一个list集合中的对象有相同的name&#xff0c;我需要把相同name的对象进行汇总计算。使用java stream来实现这个需求&#xff0c;这里做一个记录&#xff0c;希望对有需求的同学提供帮助 一、根据指定字段进行分组 一、先准备好给前端要…

菱形继承和菱形虚拟继承

c具有多继承的特性&#xff0c;那么菱形继承就是多继承的一种特殊情况&#xff0c;但是菱形继承会出现一些问题&#xff0c;比如数据冗余和二义性&#xff1b; 那么怎么解决这个问题呢&#xff1f; 菱形虚拟继承 菱形虚拟继承的原理 class A { public:int _a; };class B: v…

Stable Diffusion【基础篇】:降噪强度(denoising strength)

提到降噪强度&#xff08;denoising strength&#xff09;&#xff0c;大家一定不会陌生&#xff0c;这个参数是图生图中最关键的参数之一。今天在Stable Diffusion Art网站看到一篇介绍降噪强度&#xff08;denoising strength&#xff09;的文章&#xff08;地址&#xff1a;…

【postgresql】版本学习

PostgreSQL 17 Beta 2 发布于2024-06-27。 PostgreSQL 17 Beta 2功能和变更功能的完整列表&#xff1a;PostgreSQL: Documentation: 17: E.1. Release 17 ​ 支持的版本&#xff1a; 16 ( 当前版本) / 15 / 14 / 13 / 12 ​ 不支持的版本&#xff1a; 11 / 10 / 9.6 / 9.5 /…