我一直在尝试创建一个函数,使用正确的词列出日期之间的时间,特别是我希望它能够解释复数。我知道我可以通过运行所有数字和 if 语句来做到这一点,但我真的希望找到一种更有效的方法来实现我的目标。
IE:我希望 datetime
的 221 天,1:17:06.996068
返回为 221 天 1 小时 17 分 6.99 秒.
重要的是它会在适当的时候说天/小时/分钟/秒或天/小时/分钟/秒。
我的代码示例片段:
from datetime import datetime as dt
now = dt.now(tz=None) # Current local computer time
test = dt(2018,3,25,23,0,0) # March 25th, 2018 23h 0m 0s
countdown = test - now
print(countdown) # 2 days, 1:45:00.685739
# Desired outcome: 2 days, 1 hour, 45 minutes, 0.68 seconds.
有没有什么函数能如此高效地标记单数或复数时间?
最佳答案
如果找不到更好的解决方案,可以编写一个“复数化”函数:
def pl(number,unit):
return unit + "s" if number > 1 or isinstance(number, float) else unit
pl(10, "hour")
#'hours'
pl(.75, "sec")
#'secs'
它至少会从读者的眼中隐藏if
。
关于python - 以占复数的单词列出Python日期时间倒计时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49461172/