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

时间:2015-02-09 11:26:45

标签: python date datetime 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():
&#13;
&#13;
&#13;

1 个答案:

答案 0 :(得分:1)

您可以使用datetime.timedelta
它有一个可选的weeks参数,您可以将其设置为-1,以便从date中减去七天。

您还必须减去当前日期的工作日(以及另一个工作日,甚至是周一为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