python 本周,本季度,本月,时间范围获取

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Date    : 2019-12-13 17:35:19
# @Author  : zhuhua 
import arrow

class DateUtils(object):
    """docstring for ClassName"""
    def __init__(self):
        self.now = arrow.utcnow().to("local")
        self.name2time = dict(
            昨天=lambda: self.get_yesterday_start_end(),
            今天=lambda: self.get_today_start_end(),
            本周=lambda: self.get_week_start_end(),
            上周=lambda: self.get_last_week_start_end(),
            本月=lambda: self.get_month_start_end(),
            上月=lambda: self.get_last_month_start_end(),
            本季度=lambda: self.get_quarter_start_end(),
            今年=lambda: self.get_year_start_end(),
        )


    def get_today_start_end(self):
        return self.now.floor("day").datetime, self.now.ceil("day").datetime

    def get_yesterday_start_end(self):
        yesterday = self.now.shift(days=-1)
        return yesterday.floor("day").datetime, yesterday.ceil("day").datetime

    def get_week_start_end(self):
        return self.now.floor("week").datetime, self.now.ceil("week").datetime

    def get_last_week_start_end(self):
        last_week = self.now.shift(weeks=-1)
        return last_week.floor("week").datetime, last_week.ceil("week").datetime

    def get_month_start_end(self):
        return self.now.floor("month").datetime, self.now.ceil("month").datetime

    def get_last_month_start_end(self):
        last_month = self.now.shift(months=-1)
        return last_month.floor("month").datetime, last_month.ceil("month").datetime

    def get_quarter_start_end(self):
        return self.now.floor("quarter").datetime, self.now.ceil("quarter").datetime

    def get_year_start_end(self):
        return self.now.floor("year").datetime, self.now.ceil("year").datetime


if __name__ == '__main__':
    bb=DateUtils()
    print(bb.name2time.get("昨天")())

你可能感兴趣的:(python 本周,本季度,本月,时间范围获取)