2013-10-30 5 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- and-next-week) –

답변

12

그냥 추가 주를 빼기 위해 start_deltaweeks=1을 추가

>>> 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)