例如,使用 nice_duration 来检查自 2016 年 7 月上旬的日期时间产生以来已经过去了多长时间,“十一六十六天五小时一秒”。
如果你只是问 Mycroft 这个问题,它就会转向 Wolfram,它会产生所需的输出。 我意识到试图解决几天到几年的问题是一项噩梦般的任务,考虑到闰年等等,但我认为它至少应该移动到数百:“一千六十六天......”(或“一千一百六十六天”)天”)
感谢您报告此事:)
如果有人热衷于解决它并想要处理闰年,我最近在日期时间技能中使用了以下内容:
def is_leap_year(self, year):
return (year % 400 == 0) or ((year % 4 == 0) and (year % 100 != 0))
标准库中还有calendar.isleap
函数...
人性化模块也可能值得一看......
>>> humanize.naturaldelta(timedelta(minutes=40, hours=360000))
'41 years'
如果有人 _is_ 打算重构这个函数,那么当他们在那里时,给出解决方案可能是值得的。 Mycroft 告诉你从很久以前那天到现在已经过去了多少秒,这很有趣且 100% 的字符,但编码人员可能更喜欢指定nice_duration_years()
或nice_duration(dt1, dt2, <str>resolution)
是的,我一直在考虑许多这些功能的“解决方案”,但不想进行重大更改。 如果我们只添加一个可选参数并且它仍然只返回一个字符串,那么这似乎不是一个问题,例如:
nice_duration(<int>seconds, <str>resolution)
因为我不是自己编码的,所以我会提出一千条建议!
如果这些功能确实得到解决,也许几年可以在三个月内运行,或者考虑多少个月或等等,使“大约 2 年”、“几乎 2 年”、“2 年多一点”或只是“2年”
我刚开始在解释器中对此大惊小怪,我认为这不会像我想象的那么难。 如果还没有人开始,我会在晚饭后做。
修复合并。