我怎样才能在Python中获得前一周的成绩?

tde*_*lam 14 python python-2.7 python-datetime

我目前正在从周一开始到周日结束,但我怎样才能从周一开始到周日结束?这是我现在的本周:

>>> 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
Run Code Online (Sandbox Code Playgroud)

Dol*_*lph 23

只需添加weeks=1到您start_delta的额外一周减去:

>>> start_delta = datetime.timedelta(days=weekday, weeks=1)
Run Code Online (Sandbox Code Playgroud)

因此,对于今天(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)
Run Code Online (Sandbox Code Playgroud)