python calendar内置日历库函数方法

简介: python calendar内置日历库函数方法

calendar

Python标准库中的一个模块,它提供了一组用于打印日历的函数。使用这个库,你可以轻松地生成各种格式和样式的日历。

1. prcal(year)

参数w,c,l是打印间隔,w是日期之间的间隔;c是月份之间的间隔;l是行与行的间隔。

直接打印:

import calendar
calendar.prcal(2024)
                                  2024
 
      January                   February                   March
Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su
 1  2  3  4  5  6  7                1  2  3  4                   1  2  3
 8  9 10 11 12 13 14       5  6  7  8  9 10 11       4  5  6  7  8  9 10
15 16 17 18 19 20 21      12 13 14 15 16 17 18      11 12 13 14 15 16 17
22 23 24 25 26 27 28      19 20 21 22 23 24 25      18 19 20 21 22 23 24
29 30 31                  26 27 28 29               25 26 27 28 29 30 31
 
       April                      May                       June
Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su
 1  2  3  4  5  6  7             1  2  3  4  5                      1  2
 8  9 10 11 12 13 14       6  7  8  9 10 11 12       3  4  5  6  7  8  9
15 16 17 18 19 20 21      13 14 15 16 17 18 19      10 11 12 13 14 15 16
22 23 24 25 26 27 28      20 21 22 23 24 25 26      17 18 19 20 21 22 23
29 30                     27 28 29 30 31            24 25 26 27 28 29 30
 
        July                     August                  September
Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su
 1  2  3  4  5  6  7                1  2  3  4                         1
 8  9 10 11 12 13 14       5  6  7  8  9 10 11       2  3  4  5  6  7  8
15 16 17 18 19 20 21      12 13 14 15 16 17 18       9 10 11 12 13 14 15
22 23 24 25 26 27 28      19 20 21 22 23 24 25      16 17 18 19 20 21 22
29 30 31                  26 27 28 29 30 31         23 24 25 26 27 28 29
                                                    30
 
      October                   November                  December
Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su
    1  2  3  4  5  6                   1  2  3                         1
 7  8  9 10 11 12 13       4  5  6  7  8  9 10       2  3  4  5  6  7  8
14 15 16 17 18 19 20      11 12 13 14 15 16 17       9 10 11 12 13 14 15
21 22 23 24 25 26 27      18 19 20 21 22 23 24      16 17 18 19 20 21 22
28 29 30 31               25 26 27 28 29 30         23 24 25 26 27 28 29
                                                    30 31

默认并排打印3个月份,参数m=2设置成2个月并排:


calendar.prcal(2024, m=2)

                    2024


     January                   February

Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su

1  2  3  4  5  6  7                         1  2  3  4

8  9 10 11 12 13 14          5  6  7  8  9 10 11

15 16 17 18 19 20 21      12 13 14 15 16 17 18

22 23 24 25 26 27 28      19 20 21 22 23 24 25

29 30 31                           26 27 28 29


      March                     April

Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su

                1  2  3               1  2  3  4  5  6  7

4  5  6  7  8  9 10             8  9 10 11 12 13 14

11 12 13 14 15 16 17      15 16 17 18 19 20 21

18 19 20 21 22 23 24      22 23 24 25 26 27 28

25 26 27 28 29 30 31      29 30


       May                       June

Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su

          1  2  3  4  5                                1  2

6  7  8  9 10 11 12           3  4  5  6  7  8  9

13 14 15 16 17 18 19      10 11 12 13 14 15 16

20 21 22 23 24 25 26      17 18 19 20 21 22 23

27 28 29 30 31                24 25 26 27 28 29 30


       July                     August

Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su

1  2  3  4  5  6  7                         1  2  3  4

8  9 10 11 12 13 14        5  6  7  8  9 10 11

15 16 17 18 19 20 21      12 13 14 15 16 17 18

22 23 24 25 26 27 28      19 20 21 22 23 24 25

29 30 31                          26 27 28 29 30 31


    September                  October

Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su

                        1                    1  2  3  4  5  6

2  3  4  5  6  7  8             7  8  9 10 11 12 13

9 10 11 12 13 14 15      14 15 16 17 18 19 20

16 17 18 19 20 21 22      21 22 23 24 25 26 27

23 24 25 26 27 28 29      28 29 30 31

30


     November                  December

Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su

            1  2  3                                          1

4  5  6  7  8  9 10              2  3  4  5  6  7  8

11 12 13 14 15 16 17       9 10 11 12 13 14 15

18 19 20 21 22 23 24      16 17 18 19 20 21 22

25 26 27 28 29 30            23 24 25 26 27 28 29

                                        30 31


2. calendar(year)

参数与prcal()完全一致,只是它返回的是字符串,打印结果 print(calendar.calendar(2024)) 与calendar.prcal(2024) 一样效果:


>>> calendar.calendar(2024)

'                                  2024\n\n      January                   February                   March\nMo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su\n 1  2  3  4  5  6  7                1  2  3  4                   1  2  3\n 8  9 10 11 12 13 14       5  6  7  8  9 10 11       4  5  6  7  8  9 10\n15 16 17 18 19 20 21      12 13 14 15 16 17 18      11 12 13 14 15 16 17\n22 23 24 25 26 27 28      19 20 21 22 23 24 25      18 19 20 21 22 23 24\n29 30 31                  26 27 28 29               25 26 27 28 29 30 31\n\n       April                      May                       June\nMo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su\n 1  2  3  4  5  6  7             1  2  3  4  5                      1  2\n 8  9 10 11 12 13 14       6  7  8  9 10 11 12       3  4  5  6  7  8  9\n15 16 17 18 19 20 21      13 14 15 16 17 18 19      10 11 12 13 14 15 16\n22 23 24 25 26 27 28      20 21 22 23 24 25 26      17 18 19 20 21 22 23\n29 30                     27 28 29 30 31            24 25 26 27 28 29 30\n\n        July                     August                  September\nMo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su\n 1  2  3  4  5  6  7                1  2  3  4                         1\n 8  9 10 11 12 13 14       5  6  7  8  9 10 11       2  3  4  5  6  7  8\n15 16 17 18 19 20 21      12 13 14 15 16 17 18       9 10 11 12 13 14 15\n22 23 24 25 26 27 28      19 20 21 22 23 24 25      16 17 18 19 20 21 22\n29 30 31                  26 27 28 29 30 31         23 24 25 26 27 28 29\n                                                    30\n\n      October                   November                  December\nMo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su\n    1  2  3  4  5  6                   1  2  3                         1\n 7  8  9 10 11 12 13       4  5  6  7  8  9 10       2  3  4  5  6  7  8\n14 15 16 17 18 19 20      11 12 13 14 15 16 17       9 10 11 12 13 14 15\n21 22 23 24 25 26 27      18 19 20 21 22 23 24      16 17 18 19 20 21 22\n28 29 30 31               25 26 27 28 29 30         23 24 25 26 27 28 29\n                                                    30 31\n'


3.prmonth(year, month)

打印单个月份。


>>> calendar.prmonth(2024,3)

    March 2024

Mo Tu We Th Fr Sa Su

                     1  2   3

4   5   6   7   8   9  10

11 12 13 14 15 16 17

18 19 20 21 22 23 24


4.month(year, month)

返回单月的日历字符串。


>>> print(calendar.month(2024,3))

    March 2024

Mo Tu We Th Fr Sa Su

                     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


5. monthrange(year, month)

返回该月第一天的星期和当月总天数。


>>> calendar.monthrange(2024,2)

(calendar.THURSDAY, 29)

>>> calendar.monthrange(2024,3)

(calendar.FRIDAY, 31)

>>> calendar.monthrange(2024,4)

(calendar.MONDAY, 30)


6. weekday(year, month, day)

返回指定日期的星期数


>>> calendar.weekday(2024, 3, 16)

calendar.SATURDAY

>>> calendar.weekday(2025, 1, 1)

calendar.WEDNESDAY


7. month_name

月份名列表,索引是从1开始的,索引0为空串。


>>> [calendar.month_name[i] for i in range(13)]

['', 'January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']


8. day_name

星期名列表,索引是从0开始的。


>>> [calendar.day_name[i] for i in range(7)]

['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday']


9.isleap(year)

判断年份是否闰年。


>>> calendar.isleap(2024)

True

>>> calendar.isleap(2025)

False


10. weekheader(width)

日历的表格头。


>>> calendar.weekheader(1)

'M T W T F S S'

>>> calendar.weekheader(2)

'Mo Tu We Th Fr Sa Su'

>>> calendar.weekheader(3)

'Mon Tue Wed Thu Fri Sat Sun'

>>> calendar.weekheader(4)

'Mon  Tue  Wed  Thu  Fri  Sat  Sun '


11.Day()

一星期七天的名称枚举。


>>> calendar.Day

<enum 'Day'>

>>> [calendar.Day(i) for i in range(7)]

[calendar.MONDAY, calendar.TUESDAY, calendar.WEDNESDAY, calendar.THURSDAY, calendar.FRIDAY, calendar.SATURDAY, calendar.SUNDAY]


12.setfirstweekday(0)

星期的第一天显示的设置,默认值是0即星期一为第一天。


>>> import calendar

>>> calendar.prmonth(2024,3)

    March 2024

Mo Tu We Th Fr Sa Su

                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

>>> calendar.setfirstweekday(6)

>>> calendar.prmonth(2024,3)

    March 2024

Su Mo Tu We Th Fr Sa

                    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

>>> calendar.setfirstweekday(3)

>>> calendar.prmonth(2024,3)

    March 2024

Th Fr Sa Su Mo Tu We

    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

>>> calendar.setfirstweekday(0)

>>> calendar.prmonth(2024,3)

    March 2024

Mo Tu We Th Fr Sa Su

                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



目录
相关文章
|
12天前
|
调度 开发者 Python
Python中的异步编程:理解asyncio库
在Python的世界里,异步编程是一种高效处理I/O密集型任务的方法。本文将深入探讨Python的asyncio库,它是实现异步编程的核心。我们将从asyncio的基本概念出发,逐步解析事件循环、协程、任务和期货的概念,并通过实例展示如何使用asyncio来编写异步代码。不同于传统的同步编程,异步编程能够让程序在等待I/O操作完成时释放资源去处理其他任务,从而提高程序的整体效率和响应速度。
|
15天前
|
数据采集 存储 数据挖掘
Python数据分析:Pandas库的高效数据处理技巧
【10月更文挑战第27天】在数据分析领域,Python的Pandas库因其强大的数据处理能力而备受青睐。本文介绍了Pandas在数据导入、清洗、转换、聚合、时间序列分析和数据合并等方面的高效技巧,帮助数据分析师快速处理复杂数据集,提高工作效率。
43 0
WK
|
19天前
|
Python
Python中format_map()方法
在Python中,`format_map()`方法用于使用字典格式化字符串。它接受一个字典作为参数,用字典中的键值对替换字符串中的占位符。此方法适用于从字典动态获取值的场景,尤其在处理大量替换值时更为清晰和方便。
WK
66 36
|
8天前
|
数据库 Python
异步编程不再难!Python asyncio库实战,让你的代码流畅如丝!
在编程中,随着应用复杂度的提升,对并发和异步处理的需求日益增长。Python的asyncio库通过async和await关键字,简化了异步编程,使其变得流畅高效。本文将通过实战示例,介绍异步编程的基本概念、如何使用asyncio编写异步代码以及处理多个异步任务的方法,帮助你掌握异步编程技巧,提高代码性能。
25 4
|
8天前
|
API 数据处理 Python
探秘Python并发新世界:asyncio库,让你的代码并发更优雅!
在Python编程中,随着网络应用和数据处理需求的增长,并发编程变得愈发重要。asyncio库作为Python 3.4及以上版本的标准库,以其简洁的API和强大的异步编程能力,成为提升性能和优化资源利用的关键工具。本文介绍了asyncio的基本概念、异步函数的定义与使用、并发控制和资源管理等核心功能,通过具体示例展示了如何高效地编写并发代码。
19 2
|
13天前
|
数据采集 JSON 测试技术
Python爬虫神器requests库的使用
在现代编程中,网络请求是必不可少的部分。本文详细介绍 Python 的 requests 库,一个功能强大且易用的 HTTP 请求库。内容涵盖安装、基本功能(如发送 GET 和 POST 请求、设置请求头、处理响应)、高级功能(如会话管理和文件上传)以及实际应用场景。通过本文,你将全面掌握 requests 库的使用方法。🚀🌟
35 7
|
14天前
|
机器学习/深度学习 数据采集 算法
Python机器学习:Scikit-learn库的高效使用技巧
【10月更文挑战第28天】Scikit-learn 是 Python 中最受欢迎的机器学习库之一,以其简洁的 API、丰富的算法和良好的文档支持而受到开发者喜爱。本文介绍了 Scikit-learn 的高效使用技巧,包括数据预处理(如使用 Pipeline 和 ColumnTransformer)、模型选择与评估(如交叉验证和 GridSearchCV)以及模型持久化(如使用 joblib)。通过这些技巧,你可以在机器学习项目中事半功倍。
21 3
|
17天前
|
数据采集 数据可视化 数据处理
如何使用Python实现一个交易策略。主要步骤包括:导入所需库(如`pandas`、`numpy`、`matplotlib`)
本文介绍了如何使用Python实现一个交易策略。主要步骤包括:导入所需库(如`pandas`、`numpy`、`matplotlib`),加载历史数据,计算均线和其他技术指标,实现交易逻辑,记录和可视化交易结果。示例代码展示了如何根据均线交叉和价格条件进行开仓、止损和止盈操作。实际应用时需注意数据质量、交易成本和风险管理。
37 5
|
16天前
|
存储 数据挖掘 数据处理
Python数据分析:Pandas库的高效数据处理技巧
【10月更文挑战第26天】Python 是数据分析领域的热门语言,Pandas 库以其高效的数据处理功能成为数据科学家的利器。本文介绍 Pandas 在数据读取、筛选、分组、转换和合并等方面的高效技巧,并通过示例代码展示其实际应用。
30 2
|
18天前
|
测试技术 数据安全/隐私保护 Python
探索Python中的装饰器:简化和增强你的函数
【10月更文挑战第24天】在Python编程的海洋中,装饰器是那把可以令你的代码更简洁、更强大的魔法棒。它们不仅能够扩展函数的功能,还能保持代码的整洁性。本文将带你深入了解装饰器的概念、实现方式以及如何通过它们来提升你的代码质量。让我们一起揭开装饰器的神秘面纱,学习如何用它们来打造更加优雅和高效的代码。