У меня есть следующий код Python, чтобы вычислить, сколько дней, часов, минут, секунд и миллисекунд составляет количество marsdays. Я хочу вывод:
x sols = x дней, x часов, x минут, x секунд, x миллисекунд
Я узнал, что мне пришлось использовать timedelta, потому что она использует миллисекунды, которые мне нужны.
Я написал следующий код, но он не дает правильного вывода для значений. Когда им больше 60, их нужно передать, потому что 60 секунд равны 1 часу. Но значения могут пойти> 60. например, когда я ввожу значение> 1, например 4, я получаю aswer: 4 sol = 4 дня, 2 часа, 38 минут, 7220 секунд, 976 миллисекунд.
from datetime import datetime, timedelta
sol = timedelta(hours=24,minutes=39,seconds=35,milliseconds=244)
amount = input("Amount of sols: ")
earth=int(amount)*sol
hours = int(earth.seconds/3600)
minutes = int((earth.seconds-(hours*3600))/60)
secondes = int(earth.seconds-(minutes*60))
millisecondes = int(earth.microseconds/1000)
print (amount + " sol = " + str(earth.days) + ' days, ' + str(hours) + ' hours, ' + str(minutes) + ' minutes, ' + str(secondes) + ' secondes, ' + str(millisecondes) + ' millisecondes')
Часы, минуты и миллисекунды рассчитываются таким образом, потому что timedelta не может дать их по-видимому.
earth.days
earth.seconds
существует, но
earth.hours
earth.minutes
earth.milliseconds
не существует. чего я не понимаю, потому что могу дать им значения, как показано в строке 2.
Я думаю, что способ, которым я пытаюсь достичь того, чего хочу, не верен.