Python根據當天日期獲取上上周六和上周日的日期值

需求背景:數據當周出不完裝的情況下,都會去取上周數據,也就是完全不在更新的數據(適用于間隔時間段的數據)
例如:當天數是2021-11-04 我們會去取2021-10-24(上上周六) 至2021-10-30(上周日) 之間的數據,
在本周,也就是 2021-11-01至2021-11-07(一周七天) ,不管任何一天都要取2021-10-24(上上周六) 至2021-10-30(上周日) 之間的數據。

1.當天日期我們根據datetime模塊來取

import datetime
datetime.datetime.today()

2.當天日期和我們要得到的日期之間的差值 我們使用timedelta模塊

from datetime import timedelta

3.綜合代碼如下:

# -*- coding: utf-8 -*-

import datetime
from datetime import timedelta

#根據當前日期獲取 上上周日 到 上周六 的日期值
class ActiveLastWeek:
    def __init__(self):
        pass
    def get_week_day(self,date_s):
        week_day_dict = {
        0 : '1',
        1 : '2',
        2 : '3',
        3 : '4',
        4 : '5',
        5 : '6',
        6 : '7',
        }
        day = date_s.weekday()
        return week_day_dict[day]

    def active_date(self,choice_date):
        last_last_sunday = ''
        last_saturday = ''
        # choice_date = datetime.datetime.today()
        week = self.get_week_day(choice_date)
        if week == '1':
            print('周一')
            last_saturday = choice_date - timedelta(days=2)
            last_last_sunday = choice_date - timedelta(days=8)
        if week == '2':
            print('周二')
            last_saturday = choice_date - timedelta(days=3)
            last_last_sunday = choice_date - timedelta(days=9)
        elif week == '3':
            print('周三')
            last_saturday = choice_date - timedelta(days=4)
            last_last_sunday = choice_date - timedelta(days=10)
        elif week == '4':
            print('周四')
            last_saturday = choice_date - timedelta(days=5)
            last_last_sunday = choice_date - timedelta(days=11)
        elif week == '5':
            print('周五')
            last_saturday = choice_date - timedelta(days=6)
            last_last_sunday = choice_date - timedelta(days=12)
        elif week == '6':
            print('周六')
            last_saturday = choice_date - timedelta(days=7)
            last_last_sunday = choice_date - timedelta(days=13)
        elif week == '7':
            print('周日')
            last_saturday = choice_date - timedelta(days=8)
            last_last_sunday = choice_date - timedelta(days=14)
        now_date = choice_date.date()
        from_date = last_last_sunday.date()
        to_date = last_saturday.date()
        # print(now_date,from_date,to_date)
        print('當天:{0}'.format(now_date))
        print('上上周六:{0}'.format(from_date))
        print('上周日:{0}'.format(to_date))


if __name__ == '__main__':
    t = ActiveLastWeek()
    t.active_date(datetime.datetime.today())

4.運行結果如下


運行結果
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容