Mycroft-core: mycroft.format.nice_duration()の出力は長期間にわたって扱いにくい

作成日 2019年09月10日  ·  8コメント  ·  ソース: MycroftAI/mycroft-core

たとえば、nice_durationを使用して、2016年7月初旬の日時から「1166日5時間1秒」が生成されてからの経過時間を確認します。

Mycroftにその質問をすると、Wolframにキックオーバーし、目的の出力が生成されます。 うるう年などを考えると、数日から数年に取り組むのは悪夢のような作業だと思いますが、少なくとも「1166日...」(または「1166日」)に移行する必要があると思います。日々")

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'

誰かがこの関数をリファクタリングしようとしている場合、彼らがそこにいる間に物事を解決する価値があるかもしれません。 Mycroftがずっと前のその日から何秒経過したかを教えてくれるのはおもしろく、100%の性格ですが、コーダーはnice_duration_years()またはnice_duration(dt1, dt2, <str>resolution)を指定することを好むかもしれません。

ええ、私はこれらの機能の多くの「解決」について考えてきましたが、重大な変更を加えたくありません。 オプションのパラメータを追加するだけで、それでも文字列を返すだけであれば、ここではそれほど問題にはならないようです。例:
nice_duration(<int>seconds, <str>resolution)

私はこれを自分でコーディングしていないので、千の提案をします!

これらの機能が解決された場合、おそらく数年は学期にわたって機能するか、何ヶ月などが「約2年」、「ほぼ2年」、「2年強」、または単に「2」の違いを生む可能性があります。年」

通訳でこれに悩まされ始めたばかりで、思ったほど難しくはないと思います。 まだ誰も始めていないのなら、夕食後にやります。

マージされた修正。

このページは役に立ちましたか?
0 / 5 - 0 評価