我正在使用 google calendar 和 sheets API 探索 python。基本上,它应该记录我日历中的某些事件,计算有多少,然后将其放入我的工作表中。
我从 google calendar api 快速入门示例的数组中得到了一些这样的日期信息,所以我知道我可以读取数据,但我需要每天到每周处理它。
2017-10-23 work
2017-10-24 work
我想将它们折叠成数周。所以上面两行应该折叠成这一行:
Oct 23- Oct 29 2 #2 instances of work.
但我不确定如何实现。
最佳答案
datetime.date
有一个 isocalendar()
方法,它返回一个元组,您可以从中获取日历周。
例如,使用您从 Google Calendar API 获取的数组中的数据:
>>> datetime.date(2017, 10, 23).isocalendar()
(2017, 43, 1)
>>> datetime.date(2017, 10, 24).isocalendar()
(2017, 43, 2)
请注意,这两个事件都发生在一年中的第 43 周。
只获取星期:
>>> datetime.date(2017, 10, 24).isocalendar()[1]
43
从那里,您可以确定事件是否在同一周内重复发生。需要额外的编码来处理所有日期,将它们解析为周,然后聚合它们,但核心将按周识别事件,您可以使用 datetime.datetime.isocalendar()
.
希望有用!
关于python日期匹配到星期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46045374/