我在互联网上找到了这个代码并稍微改了一下,但由于某种原因,结果是1秒错了;
Ex:140153应该返回38:55:53但是返回38:55:52
N = int(input())
min = 60
hour = 60 * 60
day = 60 * 60 * 24
DAY = N // day
HOUR = (N - (DAY)) // hour
MINUT = (N - (DAY + (HOUR * hour))) // min
SECONDS = N - (DAY + (HOUR * hour) + (MINUT * min))
print('{}:{}:{}'.format(HOUR, MINUT, SECONDS))
答案 0 :(得分:1)
DAY
的值为1。
在每一步中,您将减去天数(1)而不是每天的秒数。它不会影响小时和分钟的计算,因为您正在进行整数除法(//
)(在文档中称为floor division)。
但是,由于您只需要以小时,分钟和秒为单位的时间,因此您可以完全从代码中删除DAY
。
N = int(input())
min = 60
hour = 60 * 60
day = 60 * 60 * 24
HOUR = N // hour
MINUT = (N - (HOUR * hour)) // min
SECONDS = N - ((HOUR * hour) + (MINUT * min))
print('{}:{}:{}'.format(HOUR, MINUT, SECONDS))
N = 140153
为您提供38:55:53
。
N = 200000
为您提供55:33:20
。
如果您只想将秒数转换为小时/分钟/秒,请检查this question以获得更多的pythonic方式。