Files
dromara--domain-admin/domain_admin/enums/time_unit_enum.py
T
2026-07-13 12:31:34 +08:00

77 lines
1.7 KiB
Python

# -*- coding: utf-8 -*-
"""
@File : time_unit_enum.py
@Date : 2024-11-02
@Author : Peng Shiyu
"""
from __future__ import print_function, unicode_literals, absolute_import, division
class TimeUnitEnum(object):
"""
时间单位枚举值
@since v1.6.56
"""
# 毫秒
Millisecond = 1
# 秒
Second = 2
# 分钟
Minute = 3
# 小时
Hour = 4
# 天
Day = 5
# 周
Week = 6
# 月
Month = 7
# 年
Year = 8
@staticmethod
def get_config():
return [
(TimeUnitEnum.Millisecond, '毫秒'),
(TimeUnitEnum.Second, '秒'),
(TimeUnitEnum.Minute, '分钟'),
(TimeUnitEnum.Hour, '小时'),
(TimeUnitEnum.Day, '天'),
(TimeUnitEnum.Week, '周'),
(TimeUnitEnum.Month, '月'),
(TimeUnitEnum.Year, '年'),
]
@staticmethod
def get_label(value):
mapping = {k: v for k, v in TimeUnitEnum.get_config()}
return mapping.get(value)
@staticmethod
def get_value(label):
mapping = {k: v for v, k in TimeUnitEnum.get_config()}
return mapping.get(label)
@staticmethod
def to_millisecond(value, unit=Second):
# 基础单位:毫秒
mapping = {
TimeUnitEnum.Millisecond: 1,
TimeUnitEnum.Second: 1000,
TimeUnitEnum.Minute: 1000 * 60,
TimeUnitEnum.Hour: 1000 * 60 * 60,
TimeUnitEnum.Day: 1000 * 60 * 60 * 24,
TimeUnitEnum.Week: 1000 * 60 * 60 * 24 * 7,
TimeUnitEnum.Month: 1000 * 60 * 60 * 24 * 30,
TimeUnitEnum.Year: 1000 * 60 * 60 * 24 * 365,
}
return value * mapping.get(unit)