2013-10-30 14 views
6

Tôi hiện đang bắt đầu tuần hiện tại bắt đầu từ Thứ Hai và kết thúc vào Chủ Nhật nhưng làm cách nào để có được tuần trước bắt đầu vào Thứ Hai và kết thúc vào Chủ Nhật? Dưới đây là những gì tôi có bây giờ cho tuần hiện tại:Làm cách nào để có được tuần trước bằng 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

Làm tương tự nhưng quay lại 7 ngày nữa? –

+1

có thể trùng lặp của [Tạo mảng ngày tháng trong tuần trước, tuần này và tuần tới] (http://stackoverflow.com/questions/17611774/build-array-of-dates-in-last-week-this-week- và tuần sau) –

Trả lời

12

Chỉ cần thêm weeks=1-start_delta của bạn trừ thêm một tuần nữa:

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

Vì vậy, cho ngày hôm nay (Thứ Tư 30 tháng 10, 2013), start_delta sẽ là 9 ngày (quay lại Thứ Hai tuần trước, ngày 21 tháng 10 năm 2013).

>>> start_delta 
datetime.timedelta(9) 
>>> start_of_week = today - start_delta 
>>> start_of_week 
datetime.date(2013, 10, 21) 
Các vấn đề liên quan