【发布时间】:2018-10-09 08:43:28
【问题描述】:
我有以下问题:从给定日期开始,我需要找到该年的周数,然后找到该周的开始日和结束日。
day1= datetime.datetime(2015,9,28)
day2= datetime.datetime(2017,12,18)
找到一周工作正常:
day1.isocalendar()
day2.isocalendar()
返回
(2015, 40, 1)
(2017, 51, 1)
这也对应一些标准日历: http://whatweekisit.org/calendar-2015.html
然后我定义了如下函数:
def week_start_end(year,week):
'''Given year and week, returns the start and end day of the week
as datetime object'''
w = "%s-W%s"%(year,week)
s = datetime.datetime.strptime(w + '-1', "%Y-W%W-%w")#monday
e= datetime.datetime.strptime(w + '-0', "%Y-W%W-%w")#sunday
return (s,e)
当我用年份和星期作为参数调用它时:
week_start_end(2015,40)
week_start_end(2017,51)
返回以下内容:
(datetime.datetime(2015, 10, 5, 0, 0), datetime.datetime(2015, 10, 11, 0, 0))
(datetime.datetime(2017, 12, 18, 0, 0), datetime.datetime(2017, 12, 24, 0, 0))
如您所见,它在第二次约会时效果很好,但在第一次约会时效果不佳。尝试了几个实例,我意识到这个函数总是比 2015 年的返回时间晚一周,但在 2016 年和 2017 年它是正确的。
我找不到路。你能帮帮我吗?
【问题讨论】:
-
欢迎SO!
-
谢谢,其实我已经从它那里得到了很多帮助,但这次我真的不得不问。
标签: python python-2.7