calendar如何筛选出python3时间中重复事件?
我们讲过很多筛选的方法,不过好像并不是所有的方法都可以用来筛选时间。而且本期小编需要大家筛选的是不同时间中的相同事件,没有看清题目的小伙伴可以仔细了哦~那么,我们可以用calendar来处理吗?回答是,当然可以!接下来小编就带大家把这些时间筛选出来吧。
例如,Python 亚特兰大用户组在每个月的第二个星期四开会。要计算一年的会议日期,请使用monthcalendar()。
import calendarimport pprint
pprint.pprint(calendar.monthcalendar(2017, 7))
# 输出
# [[0, 0, 0, 0, 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, 0, 0, 0]]
0 值是与给定月份重叠的一周中的时间,是另一个月的一部分。
一周的第一天默认为星期一。可以通过调用setfirstweekday()来更改,但由于日历模块包含用于索引返回的日期范围的常量 monthcalendar(),因此在这种情况下跳过该步骤更方便。
要计算一年的小组会议日期,假设它们总是在每个月的第二个星期四,查看 monthcalendar()输出来查找星期四。本月的第一周和最后一周填充 0 值作为前一个月或后一个月天数的占位符。例如,如果一个月在星期五开始,则星期四位置第一周的值将为 0。
import calendarimport sys
year = int(sys.argv[1])
# Show every month
for month in range(1, 13):
# Compute the dates for each week that overlaps the month
c = calendar.monthcalendar(year, month)
first_week = c[0]
second_week = c[1]
third_week = c[2]
# If there is a Thursday in the first week,
# the second Thursday is # in the second week.
# Otherwise, the second Thursday must be in
# the third week.
if first_week[calendar.THURSDAY]:
meeting_date = second_week[calendar.THURSDAY]
else:
meeting_date = third_week[calendar.THURSDAY]
print('{:>3}: {:>2}'.format(calendar.month_abbr[month], meeting_date))
# 输出
# Jan: 12
# Feb: 9
# Mar: 9
# Apr: 13
# May: 11
# Jun: 8
# Jul: 13
# Aug: 10
# Sep: 14
# Oct: 12
# Nov: 9
# Dec: 14
相信试过的小伙伴已经筛选出结果了,检查一下是不是都是重复的时间呢~更多Python学习推荐:PyThon学习网教学中心。
以上是 calendar如何筛选出python3时间中重复事件? 的全部内容, 来源链接: utcz.com/z/541103.html