我的个人博客
更多内容,请跳转我的个人博客
题目
Human Readable Time
人类可读时间
描述
Write a function, which takes a non-negative integer (seconds) as input and returns the time in a human-readable format (HH:MM:SS)
编写一个函数,以非负整数(秒)作为输入,并以可读格式(HH:MM:SS)返回时间
-
HH = hours, padded to 2 digits, range: 00 - 99
-
MM = minutes, padded to 2 digits, range: 00 - 59
-
SS = seconds, padded to 2 digits, range: 00 - 59
-
The maximum time never exceeds 359999 (99:59:59)
-
HH=小时,填充到2位数,范围:00-99
-
MM=分钟,填充为2位数字,范围:00-59
-
SS=秒,填充为2位,范围:00-59
-
最长时间从不超过359999(99:59:59)
例子
test.assert_equals(make_readable(0), "00:00:00")
test.assert_equals(make_readable(5), "00:00:05")
test.assert_equals(make_readable(60), "00:01:00")
test.assert_equals(make_readable(86399), "23:59:59")
test.assert_equals(make_readable(359999), "99:59:59")
思路
这题其实看下来非常简单,分成三个部分处理即可,注意范围以及补零即可,为了方便结果的整合,我们从时钟开始,然后是分钟,再就是秒,其实三个处理方法都是类似,差别很细微
- 时钟
# 保存结果
result = ""
# 小时
# 得到小时的时间
temp = str(seconds // 3600)
# 如果大于99,就按99算,注意加":"
if len(temp) > 2:
result += "99:"
# 当只有个位时,注意补零
elif 0 < len(temp) < 2:
result += "0" + temp + ":"
# 如果是0,直接补零即可
elif temp == "0":
result += "00:"
# 两位,直接保存即可
else:
result += temp + ":"
# 去掉小时的时间
seconds = seconds % 3600
- 分钟
# 分钟
temp = str(seconds // 60)
if len(temp) > 2:
result += "59:"
elif 0 < len(temp) < 2:
result += "0" + temp + ":"
elif temp == "0":
result += "00:"
else:
result += temp + ":"
seconds = seconds % 60
- 秒
# 秒
temp = str(seconds)
if len(temp) > 2:
result += "59"
elif 0 < len(temp) < 2:
result += "0" + temp
elif temp == "0":
result += "00"
else:
result += temp
完整代码
def make_readable(seconds):
# Do something
# 保存结果
result = ""
# 小时
# 得到小时的时间
temp = str(seconds // 3600)
# 如果大于99,就按99算,注意加":"
if len(temp) > 2:
result += "99:"
# 当只有个位时,注意补零
elif 0 < len(temp) < 2:
result += "0" + temp + ":"
# 如果是0,直接补零即可
elif temp == "0":
result += "00:"
# 两位,直接保存即可
else:
result += temp + ":"
# 去掉小时的时间
seconds = seconds % 3600
# 分钟
temp = str(seconds // 60)
if len(temp) > 2:
result += "59:"
elif 0 < len(temp) < 2:
result += "0" + temp + ":"
elif temp == "0":
result += "00:"
else:
result += temp + ":"
seconds = seconds % 60
# 秒
temp = str(seconds)
if len(temp) > 2:
result += "59"
elif 0 < len(temp) < 2:
result += "0" + temp
elif temp == "0":
result += "00"
else:
result += temp
return result