欢迎访问宙启技术站
智能推送

使用humanfriendlyTimer()函数实现时间精度控制

发布时间:2024-01-14 04:48:10

humanfriendlyTimer()函数是一个用于控制时间精度的函数,它可以将时间转换为更易读和友好的格式。该函数接受一个时间戳或以秒为单位的时间间隔作为参数,并根据时间的大小自动选择合适的时间单位,例如秒、分钟、小时或天。

下面是humanfriendlyTimer()函数的实现:

from datetime import timedelta

def humanfriendlyTimer(seconds):
    # 定义时间单位和对应的秒数
    time_units = [
        ('day', 24 * 60 * 60),
        ('hour', 60 * 60),
        ('minute', 60),
        ('second', 1)
    ]

    # 如果时间间隔为负数,抛出异常
    if seconds < 0:
        raise ValueError('Time interval cannot be negative')

    # 根据时间大小选择时间单位,并计算时间值
    for unit, seconds_per_unit in time_units:
        if seconds >= seconds_per_unit:
            value = seconds / seconds_per_unit
            # 如果时间值为整数,则取整
            if value.is_integer():
                value = int(value)
            return f'{value} {unit}{"" if value == 1 else "s"}'

    # 如果时间间隔为0秒,则返回0秒
    return '0 seconds'

下面是humanfriendlyTimer()函数的使用示例:

print(humanfriendlyTimer(120))  # 输出:2 minutes
print(humanfriendlyTimer(3600))  # 输出:1 hour
print(humanfriendlyTimer(86400))  # 输出:1 day
print(humanfriendlyTimer(123456789))  # 输出:1 day
print(humanfriendlyTimer(0))  # 输出:0 seconds
print(humanfriendlyTimer(-10))  # 抛出异常:ValueError: Time interval cannot be negative

通过上述代码,我们可以看到humanfriendlyTimer()函数将时间间隔转换为易读的格式,并根据时间大小选择合适的时间单位(秒、分钟、小时或天)。同时,代码还处理了一些特殊情况,如时间间隔为0或负数的情况。