我想找到最Python的方式来输出两个日期之间的星期数列表。
例如:
输入
start = datetime.date(2011, 12, 25)
end = datetime.date(2012, 1, 21)
输出
find_weeks(start, end)
>> [201152, 201201, 201202, 201203]
我一直在努力使用datetime库,但收效甚微
(update:删除了不太可读的选项)
import datetime
def find_weeks(start,end):
l = []
for i in range((end-start).days + 1):
d = (start+datetime.timedelta(days=i)).isocalendar()[:2] # e.g. (2011, 52)
yearweek = '{}{:02}'.format(*d) # e.g. "201152"
l.append(yearweek)
return sorted(set(l))
start = datetime.date(2011, 12, 25)
end = datetime.date(2012, 1, 21)
print(find_weeks(start,end)[1:]) # [1:] to exclude first week.
退货
['201152', '201201', '201202', '201203']
要包含第一周(201151),只需[1:]
在函数调用后删除
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句