Из уравнений я делаю вывод, что elap
измеряется в секундах. Поскольку вы извлекаете часы в отдельную переменную, вам нужно удалить их из подсчета минут. И, конечно же, вам необходимо выполнить это до конца вычислений, поскольку значение minutes
отличается от исходного кода.
hours = int(elap/3600)
minutes = int((elap-hours*3600)/60)
seconds = int(elap-hours*3600-minutes*60)
hseconds = int((elap-hours*3600-minutes*60-seconds)*100)
Я думаю, что если бы я писал это, я бы изменил elap
, чтобы уменьшить дублирование.
hours = int(elap/3600)
elap -= hours*3600
minutes = int(elap/60)
elap -= minutes*60
seconds = int(elap)
elap -= seconds
hseconds = int(elap*100)
Делая это таким образом, гораздо легче увидеть, что происходит, а также легче изменить в будущем. Например, если вы хотите добавить дни в микс, то все, что вам нужно сделать, это перенести это в начало кода:
days = int(elap/86400)
elap -= days*86400
Теперь я написал здесь код, предполагая, что elap
- это float
, что, конечно же, присутствует в вашей программе. Если бы вы были особенно параноиком, вы бы написали elap = float(elap)
перед выполнением арифметики.
Но я согласен с @soulcheck, что использовать библиотечную функцию намного чище.