我的持续时间是这样的:
(1, 2, 3, 11)
格式为天/小时/分钟/秒。如何显示类似以下内容的内容:
1 days, 2 hours and 3 minutes
。我不需要几秒钟。因此,如果持续时间为:(0, 2, 3, 1)
它应显示为
2 hours and 3 minutes
。如果持续时间是:
(0, 0, 3, 11)
它应显示为
3 minutes.
我该如何实现?谢谢
最佳答案
您要多少钱?
如果很多,并且会重复很多,您可以编写一个函数为您完成;
def days(t):
oxford_comma = False
a = [" day", " hour", " minute"]
s = []
if len(t) != 4:
return "incorrect format"
else:
for i in range(3):
if t[i] != 0:
plural = "s" if t[i] > 1 else ""
s.append(str(t[i]) + a[i] + plural + ", ")
if len(s) > 1:
if not oxford_comma:
s[-2] = s[-2].replace(",","")
s.insert(len(s)-1,"and ")
return "".join(s)[:-2]
print days((1,2,3,11)) #1 day, 2 hours, and 3 minutes
print days((0,2,3,1)) #2 hours, and 3 minutes
print days((0,0,3,11)) #3 minutes
print days((1,1,1,11)) #1 day, 1 hour, and 1 minute
如果需要,请更改
oxford_comma
。它还考虑了复数。
抱歉,这有点混乱-它肯定可以清除-着急!
关于python - 如何在Python/Django中将此持续时间转换为天/小时/分钟/秒?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14278370/