题目
思路
去时到达外地的时间-去时离开本地的时间= 时区差时+飞行时间
回时到达本地的时间-回时离开外地的时间= -时区差时+飞行时间
故二者加起来即可得到飞行时间
代码
# 去时到达外地的时间-去时离开本地的时间= 时区差时+飞行时间
# 回时到达本地的时间-回时离开外地的时间= -时区差时+飞行时间
# 故二者加起来即可得到飞行时间
t = int(input()) # 读取测试用例的数量
for _ in range(t): # 遍历每个测试用例ans = 0 # 初始化飞行时间for __ in range(2): # 对于每个测试用例,循环两次(用于处理出发和到达时间)a = input().split() # 读取一行输入并将其按空格分割成列表,其中包含出发和到达时间的字符串for i in range(len(a)): # 遍历列表中的每个字符串if i == 2: # 如果当前索引为2,表示这是带有时区差的时间格式,因为a根据空格被split成三个部分ans += int(a[i][2]) * 24 * 3600 # 将时区差转换为秒数并加到飞行时间中else: # 如果当前索引不为2,表示这是普通的时间格式b = list(map(int, a[i].split(':'))) # 将时间字符串按冒号分割成小时、分钟、秒的列表,并将其转换为整数ans += pow(-1, i + 1) * (b[0] * 3600 + b[1] * 60 + b[2]) # 将时间转换为秒数并加到飞行时间中,根据奇偶性使用-1或1乘以秒数# i=0时,表示出发时间,i=1时表示到达时间# 输出飞行时间,格式化为时分秒print(format("%02d:%02d:%02d" % (ans // 7200, ans % (7200) // 120, ans % 120 // 2)))