Mycroft-core: mycroft.format.nice_duration() 长时间输出很尴尬

创建于 2019-09-10  ·  8评论  ·  资料来源: MycroftAI/mycroft-core

例如,使用 nice_duration 来检查自 2016 年 7 月上旬的日期时间产生以来已经过去了多长时间,“十一六十六天五小时一秒”。

如果你只是问 Mycroft 这个问题,它就会转向 Wolfram,它会产生所需的输出。 我意识到试图解决几天到几年的问题是一项噩梦般的任务,考虑到闰年等等,但我认为它至少应该移动到数百:“一千六十六天......”(或“一千一百六十六天”)天”)

help wanted

所有8条评论

感谢您报告此事:)

如果有人热衷于解决它并想要处理闰年,我最近在日期时间技能中使用了以下内容:

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年”

我刚开始在解释器中对此大惊小怪,我认为这不会像我想象的那么难。 如果还没有人开始,我会在晚饭后做。

修复合并。

此页面是否有帮助?
0 / 5 - 0 等级

相关问题

tiagochiavericosta picture tiagochiavericosta  ·  6评论

AMDphreak picture AMDphreak  ·  10评论

ryanleesipes picture ryanleesipes  ·  4评论

InconsolableCellist picture InconsolableCellist  ·  8评论

Zacki84 picture Zacki84  ·  10评论