import datetime, time
import random

class UbrdNowTime:

    @staticmethod
    def kw_ubrd_get_now_time():
        now_time = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')
        return now_time

    def get_few_days_before_or_after_current_time(self, n=0):
        """
             | 功能说明： | 获取当前时间的前几天或后几天的日期 |
             | 输入参数： | n | 前n天或后n天,通过正负数来区分 |
             | 输入参数： | hms | 1表示返回时分秒为当前时间，0表示00:00:00 |
             | 返回参数： | newtime_str | 当前时间的前几天或后几天的具体日期|
             | 作者信息： | 刘睿权     | 修改时间 20211025|
             举例说明：
             | get_few_days_before_or_after_current_time | -7 |表示当前时间往后推7天的日期|
         """
        nowtime = datetime.datetime.now()
        Newnowtime = nowtime - datetime.timedelta(days=n)
        return datetime.datetime.strftime(Newnowtime, '%Y-%m-%d %H:%M:%S')
    @staticmethod
    def kw_change_format_time(r_date):
        get_time = r_date / 1000
        time_array = time.localtime(get_time)
        other_style_time = time.strftime("%Y-%m-%d %H:%M:%S", time_array)
        return other_style_time

    @staticmethod
    def kw_ubrd_get_random_time():
        '''
        获取一个随机的时间
        :param r_date:
        :return:
        '''
        get_random_week = random.randint(0, 11)
        get_minite_time = get_random_week * 5
        if get_minite_time == 0:
            get_time = "00"
        elif get_minite_time == 5:
            get_time = "05"
        else:
            get_time = str(get_minite_time)
        return get_time

    @staticmethod
    def kw_ubrd_get_week_day(type):
        now = datetime.datetime.now()
        # 计算当前周的周一和下周一的日期
        current_weekday = now.weekday()  # 获取当前日期的星期几，星期一为0，星期日为6
        current_monday = now - datetime.timedelta(days=current_weekday)  # 当前周的周一
        next_monday = current_monday + datetime.timedelta(days=7)  # 下周一
        # 设置时间为0点
        if type == "1":
            current_day = current_monday.replace(hour=0, minute=0, second=0, microsecond=0)
        else:
            current_day = next_monday.replace(hour=0, minute=0, second=0, microsecond=0)
        return current_day


if __name__ == '__main__':
    print(UbrdNowTime.kw_ubrd_get_week_day(type=2))
