python - 如何在 Python/Django 中将此持续时间转换为天/小时/分钟/秒?

标签 python django python-2.6

我有这样的持续时间:

(1, 2, 3, 11)

它的格式是天/小时/分钟/秒。我怎样才能显示类似这样的内容:1 天 2 小时 3 分钟。我不需要秒。所以,如果持续时间是:

(0, 2, 3, 1)

应该显示为 2 小时 3 分钟。 如果持续时间是:

(0, 0, 3, 11)

它应该显示为 3 分钟。

我怎样才能做到这一点?谢谢

最佳答案

这是针对 Python 2.6 和英语单数/复数的经过编辑的答案:

def f(x):
    parts = ['%d %s%s' % (a, p, ('', 's')[a > 1]) for a,p in zip(x, ('day', 'hour', 'minute')) if a]
    return ' and '.join(c for c in [', '.join(parts[:-1]), parts[-1]] if c)

测试:

>>> print f((1, 2, 3, 11))
1 day, 2 hours and 3 minutes

>>> print f((0, 2, 3, 1))
2 hours and 3 minutes

>>> print f((0, 0, 3, 11))
3 minutes

关于python - 如何在 Python/Django 中将此持续时间转换为天/小时/分钟/秒?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14278370/

相关文章:

django - 使用 django Rest 框架 ModelViewSet 类而不是 APIView 渲染表单

python-2.6 - 如何使用 selenium 和 python 处理 firefox 中的保存文件对话框?

python - 无法添加边,IGraph 中的顶点 ID 无效

python - 处理可能为 None 的变量

python - If-Then-ElseIf-Then 在混合整数线性规划中

django - uWSGI 相当于 Django-Channels

python - python 2.6 vr 中的列表理解和 lambda 表达式。 python 2.7

Python:在 hostapd 之后运行服务

python - Maya python从曲线上的点获得正确的矩阵分解

python - AssertionError - 没有提供异常 - django