python生成日历_calendar可以在python3时间中生成日历吗?

本文介绍了如何使用Python的calendar模块来创建个性化的日历,包括月历和日历。通过示例代码展示了如何组织日期并以周和月的形式输出,以及如何自定义格式进行输出。此外,还分享了TextCalendar类的使用,生成带有星期和月份的年份视图。这是一个动手实践的好教程,适合喜欢Python和DIY日历的读者。
摘要由CSDN通过智能技术生成

1605606553333200.jpg

做完一个月历后,小伙们直呼不过瘾,想要做出一本日历来。小编已经要赔付大家了,毕竟日历比月历难得多,但是反过来想,是不是可以做出一页的日历打印下来,贴在家里和工作的地方都很方便,而且也是一个省钱的好办法了。作为一个行动派,小编马上就为大家安排上这方面的内容。

要以不同于其中一个可用默认值的格式生成输出,请使用calendar计算日期并将值组织为周和月范围,然后迭代结果。Calendar模块的 weekheader(),monthcalendar()和 yeardays2calendar()方法对此特别有用。

调用yeardays2calendar()会生成一系列“月份行”列表。每个列表包括月份作为另一个周列表。这几周是由日期编号(1-31)和工作日编号(0-6)组成的元组列表。超出月份的天数为 0。import calendar

import pprint

cal = calendar.Calendar(calendar.SUNDAY)

cal_data = cal.yeardays2calendar(2017, 3)

print('len(cal_data) :', len(cal_data))

top_months = cal_data[0]

print('len(top_months) :', len(top_months))

first_month = top_months[0]

print('len(first_month) :', len(first_month))

print('first_month:')

pprint.pprint(first_month, width=65)

# 输出

# len(cal_data) : 4

# len(top_months) : 3

# len(first_month) : 5

# first_month:

# [[(1, 6), (2, 0), (3, 1), (4, 2), (5, 3), (6, 4), (7, 5)],

# [(8, 6), (9, 0), (10, 1), (11, 2), (12, 3), (13, 4), (14, 5)],

# [(15, 6), (16, 0), (17, 1), (18, 2), (19, 3), (20, 4), (21, 5)],

# [(22, 6), (23, 0), (24, 1), (25, 2), (26, 3), (27, 4), (28, 5)],

# [(29, 6), (30, 0), (31, 1), (0, 2), (0, 3), (0, 4), (0, 5)]]

相当于使用formatyear()。import calendar

cal = calendar.TextCalendar(calendar.SUNDAY)

print(cal.formatyear(2017, 2, 1, 1, 3))

# 输出

# 2017

#

# January February March

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

# 1 2 3 4 5 6 7 1 2 3 4 1 2 3 4

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

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

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

# 29 30 31 26 27 28 26 27 28 29 30 31

#

# April May June

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

# 1 1 2 3 4 5 6 1 2 3

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

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

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

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

# 30

#

# July August September

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

# 1 1 2 3 4 5 1 2

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

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

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

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

# 30 31

#

# October November December

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

# 1 2 3 4 5 6 7 1 2 3 4 1 2

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

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

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

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

# 31

day_name,day_abbr,month_name,和 month_abbr模块主要用于生产定制格式化输出(即,包括在 HTML 输出链接)。它们会针对当前区域自动化配置。

这些代码看起来很长,其实只要复制运行就可以啦,小伙伴们不要不敢尝试~更多Python学习推荐:PyThon学习网教学中心。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值