python - 以占复数的单词列出Python日期时间倒计时

标签 python python-3.x date datetime

我一直在尝试创建一个函数,使用正确的词列出日期之间的时间,特别是我希望它能够解释复数。我知道我可以通过运行所有数字和 if 语句来做到这一点,但我真的希望找到一种更有效的方法来实现我的目标。

IE:我希望 datetime221 天​​,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/

相关文章:

python - 如何在 Canvas 上从上到下绘制一段?

python - 如何在 Python 3 中解码 HTTP 请求头和正文?

python - Dash(Python) - dash-daq 仪表中的较厚环

c# - 为什么 GETDATE() 在 SSMS 和 C# Microsoft.Practices.EnterpriseLibrary.Data 上运行时会产生不同的结果?

sql - 将JDE朱利安日期转换为公历

Python - While 假循环

python - pandas 数据帧在不均匀的时间/分钟内重新采样

javascript - 使用 python 和 urllib 从网页打印代码

python - print() 在 copytree() 完成之前不打印

ruby-on-rails - Date.step() 方法的 Ruby 正确用法