2013-10-30 38 views
6

我目前正在從星期一開始到星期天結束,但我怎樣才能得到前一週從星期一開始到星期天結束?以下是我現在有當前周:如何在Python中獲得前一週的內容?

>>> import datetime 
>>> today = datetime.date.today() 
>>> weekday = today.weekday() 
>>> start_delta = datetime.timedelta(days=weekday) 
>>> start_of_week = today - start_delta 
>>> week_dates = [] 
>>> for day in range(7): 
...  week_dates.append(start_of_week + datetime.timedelta(days=day)) 
... 
>>> week_dates 
[datetime.date(2013, 10, 28), datetime.date(2013, 10, 29), datetime.date(2013, 10, 30),  datetime.date(2013, 10, 31), datetime.date(2013, 11, 1), datetime.date(2013, 11, 2), datetime.date(2013, 11, 3)] 
>>> week_dates[0], week_dates[-1] 
(datetime.date(2013, 10, 28), datetime.date(2013, 11, 3)) <--- Monday, Sunday 
+0

做同樣的事情,但回去7天后? –

+1

[在上週,本週和下週構建日期數組]的可能重複(http://stackoverflow.com/questions/17611774/build-array-of-dates-in-last-week-this-week-和接下來的一週) –

回答

12

只需添加weeks=1start_delta減去額外的一週:

>>> start_delta = datetime.timedelta(days=weekday, weeks=1) 

所以,今日(週三,2013年10月30日), start_delta將爲9天(回到2013年10月21日的上週一)。

>>> start_delta 
datetime.timedelta(9) 
>>> start_of_week = today - start_delta 
>>> start_of_week 
datetime.date(2013, 10, 21) 
相關問題