当前位置: 首页 > 图灵资讯 > 行业资讯> calendar如何筛选出python3时间中重复事件?

calendar如何筛选出python3时间中重复事件?

来源:图灵python
时间: 2024-11-13 16:41:23

我们讲过很多筛选的方法,不过好像并不是所有的方法都可以用来筛选时间。而且本期小编需要大家筛选的是不同时间中的相同事件,没有看清题目的小伙伴可以仔细了哦~那么,我们可以用calendar来处理吗?回答是,当然可以!接下来小编就带大家把这些时间筛选出来吧。

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

importcalendar
importpprint

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。

importcalendar
importsys

year=int(sys.argv[1])

#Showeverymonth
formonthinrange(1,13):

#Computethedatesforeachweekthatoverlapsthemonth
c=calendar.monthcalendar(year,month)
first_week=c[0]
second_week=c[1]
third_week=c[2]

#IfthereisaThursdayinthefirstweek,
#thesecondThursdayis#inthesecondweek.
#Otherwise,thesecondThursdaymustbein
#thethirdweek.
iffirst_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学习网教学中心