Loading

神奇闹钟

import datetime


def get_nearest_alarm_time(time_str, interval):
    # 将输入时间字符串转换为datetime对象
    time_obj = datetime.datetime.strptime(time_str, '%Y-%m-%d %H:%M:%S')
    # 将时间转换为从纪元时间开始的分钟数
    total_minutes = int((time_obj - datetime.datetime(1970, 1, 1)).total_seconds() // 60)
    # 计算最近的闹铃时间的分钟数
    nearest_minutes = (total_minutes // interval) * interval
    # 将最近的闹铃时间的分钟数转换为datetime对象
    nearest_time = datetime.datetime(1970, 1, 1) + datetime.timedelta(minutes=nearest_minutes)
    # 格式化输出时间
    return nearest_time.strftime('%Y-%m-%d %H:%M:00')


T = int(input())
for _ in range(T):
    time_str, x = input().split()
    x = int(x)
    print(get_nearest_alarm_time(time_str, x))


上述代码首先定义了一个函数 get_nearest_alarm_time,用于计算最近的闹铃时间。函数接受一个时间字符串 time_str 和一个时间间隔 interval 作为参数。函数内部将时间字符串转换为 datetime 对象,然后计算从纪元时间开始的总分钟数。接着,通过对总分钟数除以时间间隔并取整,得到最近的闹铃时间的分钟数。最后,将这个分钟数转换为 datetime 对象,并格式化为指定的输出格式。

在主程序中,首先读取输入的测试用例数量 T,然后通过循环读取每个测试用例的时间字符串和时间间隔,并调用 get_nearest_alarm_time 函数计算最近的闹铃时间,最后将结果输出。

posted @ 2025-04-09 22:29  一只大学生  阅读(122)  评论(0)    收藏  举报