我的持续时间是这样的:

(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/

10-12 19:06