知行编程网知行编程网  2022-12-13 18:00 知行编程网 隐藏边栏  1 
文章评分 0 次,平均分 0.0
导语: 本文主要介绍了关于calendar如何筛选出python3时间中重复事件?的相关知识,希望可以帮到处于编程学习途中的小伙伴


日历如何过滤掉python3时间重复的事件?

我们说了很多筛选方法,但似乎并不是所有的方法都可以用来筛选时间。另外,本期小编需要大家在不同的时间段刷屏同样的事件。没看清题目的小伙伴们注意啦~那我们是不是可以用日历来处理呢?答案是肯定的!接下来,小编就带大家筛选一下这些时间。

例如,Python 亚特兰大用户组在每个月的第二个星期四开会。要计算一年的会议日期,请使用 monthcalendar()。

import calendar
import 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 calendar
import 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学习推荐:



本文为原创文章,版权归所有,欢迎分享本文,转载请保留出处!

知行编程网
知行编程网 关注:1    粉丝:1
这个人很懒,什么都没写
扫一扫二维码分享