-5

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

4

1 回答 1

0

欢迎来到蟒蛇。在 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”会发生什么。在您的原始示例中,您可能想要考虑另一种极端情况,即当您有负分钟时的情况,例如:09451337,在这种情况下您的解决方案会中断。

我正在努力不给你喂食,因为这是你真正需要自己弄清楚的东西,而且这是家庭作业,但我希望这能给你一个很好的起点。

于 2013-09-12T02:26:18.673 回答