Python编程:我需要编写一个带有两个军事时间输入的程序。例如,(0900,1700)并输出两个输入的时间差,以小时,分钟为单位
例如:
print("Enter the first time:") 0900
print("Enter the second time:") 1730
输出
8 hours 30 minutes
以相反的顺序
print("Enter the second time:") 1730
print("Enter the first time:") 0900
输出
15 hours 30 minutes
我已经尝试了下面的代码,但输出只是我的输入。
import datetime,time
first = input("Enter the first time in military hours:")
second = input( "Enter the second time in military hours:")
first_t= datetime.time(hour=int(first[0:2]), minute=int(first[2:4]))
second_t= datetime.time(hour=int(second[0:2]), minute=int(second[2:4]))
hour = ( second.hour-first.hour )
minute= (second.hour-first.hour)
fmt = ("%H ,%M")
print (first_t.strftime(fmt) , second_t.strftime(fmt))
对于输入值0500,1830
,它为我提供了05 , 00 18 , 30
答案 0 :(得分:0)
欢迎使用python。在python中一切都很简单。首先,您需要在更深层次上理解您的问题。这里的问题只是意识到你拿两个略有不同的总和。解决这个问题的一个好方法是以通用形式(分钟)表示它们,然后在那里完成所有数学运算并仅仅为显示目的而改回。例如:
def time_diference(time1, time2):
hour_change = abs(int(time1[:2]) - int(time2[:2]))
minute_change = int(time2[2:]) - int(time1[2:])
# Change hours to equivalent minutes so you're really comparing apples to apples
total_minute_change = hour_change * 60 + minute_change
return total_minutes_change
def print_time(minute_difference):
# Display the answer back to the user
print_time(time_difference(first, second))
既然你已经将它们进行了比较并且你有所不同,那么你应该更好地掌握如何继续进行,但仍然需要考虑边缘情况。
例如,如果你有时间“0900”和“0845”会发生什么。在您的原始示例中,您可能想要考虑另一个边缘情况,即在您收到否定分钟时就是这种情况,例如:0945
和1337
,在这种情况下您的解决方案会中断。
我正在努力不要用勺子喂你,因为这是你真正需要自己弄清楚的东西,因为这是家庭作业,但我希望这给你一个好的起点。