如何根据scrapy中当前周的日期获取上周作为开始日期和结束日期

Sur*_*esh 2 python datetime date scrapy python-datetime

如何根据当前周scrapy(周一至周日)中的日期获取上周开始日期和结束日期

示例:如果日期是 04-feb-15,那么结果应该是 start_date = Monday(26-jan-1015) end_date = Sunday(1-feb-15)

如果日期是 27-feb-15,那么结果应该是 start_date = Monday(16-feb-1015) end_date = (22-feb-15)

我试过这个:

date =aaa.xpath('xxx')
if date < datetime.datetime.today():
Run Code Online (Sandbox Code Playgroud)

Igo*_*ist 5

你可以用datetime.timedelta它。
它有一个可选weeks参数,您可以将其设置为-1date.

您还必须减去当前日期的工作日(还有另一个,甚至是自星期一以来的那一天0)。

import datetime

def previous_week_range(date):
    start_date = date + datetime.timedelta(-date.weekday(), weeks=-1)
    end_date = date + datetime.timedelta(-date.weekday() - 1)
    return start_date, end_date

previous_week_range(datetime.date(2015, 2, 9))  # 2015-02-02, 2015-02-08
previous_week_range(datetime.date(2015, 2, 13))  # 2015-02-02, 2015-02-08
previous_week_range(datetime.date(2015, 2, 16))  # 2015-02-09, 2015-02-15
Run Code Online (Sandbox Code Playgroud)