神奇闹钟
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 函数计算最近的闹铃时间,最后将结果输出。

浙公网安备 33010602011771号