我对此做了一些研究,但没有发现任何接近我想要的东西。开始我对python很新,所以我的大部分python都不是'pythonic'。除了我想要的是获得每周的开始日期和结束日期,直到当前日期。大多数情况下,我希望得到建议的方法,因为有多种不同的方法可以做到这一点。我应该考虑将其从week number
建立起来吗?或者只是使用datetime
?
我希望以这种格式构建它
[{
'start': 2013-12-30,
'end': 2014-01-05
},{
'start': 2014-01-06,
'end': 2014-01-12
}... etc]
我最初的尝试:
from datetime import date, timedelta
def get_week_days(self, year, week, **kwd):
d = date(year,1,1)
if(d.weekday()>3):
d = d+timedelta(7-d.weekday())
else:
d = d - timedelta(d.weekday())
dlt = timedelta(days = (week-2)*7)
last_wk = {}
last_wk['start'] = d + dlt
last_wk['end'] = d + dlt + timedelta(days=6)
return last_wk
这将按周数返回给定周的开始和结束日期。我可以做一个循环并将此函数称为一年中的周数,但我不确定这是否有效,或者是否可以/应该清除此方法?
关于我应该怎么做的任何建议都会有所帮助:)谢谢
答案 0 :(得分:2)
因此,在循环中调用您的方法肯定会有效。缺点是你必须在每次调用方法时重新创建所有内容。由于周是连续的,因此最好找到第一周,然后再添加1天来查找下周的开始。这样,您就可以完成以前的工作,而无需重新创建所有对象。
执行此操作的一种方法是使用getNextWeek
方法。
def getNextWeek(week):
nextWeek = {};
nextWeek['start'] = week['end'] + timedelta(days=1)
nextWeek['end'] = nextWeek['start'] + timedelta(days=6)
return nextWeek