#python
Вопрос:
Когда a и b близки, код работает нормально. Я попробовал это с 2359 в качестве a и 1 в качестве b, и это дало правильное количество часов, но дало 1438 минут вместо 58. Я знаю, что это потому, что он не меняет значение минуты для a. Любой совет, как это исправить. Я также попробовал метод добавления % 1440, но он не сработал.
numA = int(input("A departs at: "))
Ahours = numA // 100
Aminutes = numA % 100
numA = Ahours * 60 Aminutes
numB = int(input("B departs at: "))
Bhours = numB // 100
Bminutes = numB % 100
numB = Bhours * 60 Bminutes
diffMin = abs(numB - numA)
diffHours = diffMin // 60
Ответ №1:
В настоящее время ваш код устанавливает diffMin в общее количество минут между временем a и временем b. Это включает в себя несколько часов между этими двумя временами. Чтобы этого не произошло, либо вычтите соответствующее количество минут:
#get numB
#get numA
diffMin = abs(numB-numA)
diffHours = diffMin // 60
diffMin -= 60*diffHours
Или вы можете использовать модуль 60:
#get numB
#get numA
diffMin = abs(numB-numA)
diffHours = diffMin // 60
diffMin %= 60
Вы также можете использовать модуль datetime, который обладает некоторыми действительно отличными функциями для обработки дат и времени
Комментарии:
1. О, в этом больше смысла, спасибо
Ответ №2:
Вы уверены, что строка numB = Bhours * 60 Bminutes
не должна читаться trainB = Bhours * 60 Bminutes
?
Кроме того, зачем тратить все силы на вычисления trainA
, trainB
а затем не использовать их при расчете разницы в конце?