航班时间

简介: 航班时间

1 问题描述

对于一个可能跨时区的航班,给定来回程的起降时间。假设飞机来回飞行时间相同,求飞机的飞行时间。每组输入包含两行,第一行为去程的起降时间,第二行为回程的起降时间。(保证输入时间合法)

输入格式为:

h1:m1:s1 h2:m2:s2

h1:m1:s1 h2:m2:s2 (+1)

h1:m1:s1 h2:m2:s1 (+2)

输出格式为:

hh:mm:ss

2 解决方法

对输入的显示时间的字符串进行处理,即将表示时分秒的部分提取出来,求出两个时间差,再平均一下.假设时差是x,耗时为t,去和回的时间分别是t+x和t-x,所以两次时间差相加再除以2就是耗时t。

3 实验结果与讨论

通过实验、实践等证明提出的方法是有效的,是能够解决开头提出的问题。

代码清单 1

def get_time():
   strs=input().split()
   h1=int(strs[0][0:2])
   m1=int(strs[0][3:5])
   s1=int(strs[0][6:8])
   h2 = int(strs[1][0:2])  # 将时,分,秒提取出来,转换为整型,方便后期计算
   m2=int(strs[1][3:5])
   s2=int(strs[1][6:8])
   day=0
   if len(strs)==3:
       day=int(strs[2][2])  # 如果是次日到达,则需要加一天.
   t1=(h1*3600)+(m1*60)+(s1)
   t2=(h2*3600)+(m2*60)+(s2)     # 全部转换成为秒,直接相减就是一趟旅行耗费时间
   time=t2-t1+day*24*3600
   return time
n=int(input())
for i in range(n):
   ans=(get_time()+get_time())//2
   s=ans
   m=s//60
   h=m//60
   ss=s%60
   mm=m%60
   hh=h%24
   print("%02d:%02d:%02d"% (hh,mm,ss)) #当时间为一位数时,要补齐前导零。如三小时四分五秒应写 03:04:05。

4 结语

针对航班时间问题,提出直接将时间显示中的时分秒部分提取出来,全部转为秒再进行运算的方法,通过输入数据测试,证明该方法是有效的,本文的方法输入输出太多且较为复杂,未来可以探究能否利用time或者datetime更快速简洁地对问题求解。



目录
相关文章
|
2月前
|
算法 前端开发
在既定时间做作业的学生人数
在既定时间做作业的学生人数
17 0
|
3月前
leetcode-6117:坐上公交的最晚时间
leetcode-6117:坐上公交的最晚时间
30 0
|
5月前
leetcode1109 航班预订统计
leetcode1109 航班预订统计
33 0
|
6月前
|
Python
工序时间
工序时间是指在生产过程中,完成一个工序所需的时间。在制造业中,工序时间是一个重要的参数,它可以帮助企业了解生产效率、优化生产流程、制定生产计划等。
78 1
|
9月前
|
JavaScript 前端开发
当天时间往后获取一周时间
当天时间往后获取一周时间
70 0
|
9月前
|
机器学习/深度学习 人工智能 缓存
走近高德驾车ETA(预估到达时间)
ETA(Estimated Time of Arrival),即预估到达时间,指的是用户在当前时刻出发按照给定路线前往目的地预计需要的时长。如何准确地预估ETA对于高德地图的诸多业务板块都起到至关重要的作用。
走近高德驾车ETA(预估到达时间)
LeetCode 1109. 航班预订统计
这里有 n 个航班,它们分别从 1 到 n 进行编号。
80 0
实时显示日期、时间、城市天气(HTML+JS)
实时显示日期、时间、城市天气(HTML+JS)
765 0
实时显示日期、时间、城市天气(HTML+JS)
阿里云管局审核需要多长时间?精准天数查询
阿里云网站备案初审通过提交到管局,管局审核时间为1到20天,在阿里云备案系统中可以查询到精准审核时间
1373 0
阿里云管局审核需要多长时间?精准天数查询