Mycroft-core: mycroft.format.nice_duration () выводит неудобно в течение длительного времени

Созданный на 10 сент. 2019  ·  8Комментарии  ·  Источник: MycroftAI/mycroft-core

Например, используя nice_duration, чтобы проверить, сколько времени прошло с момента создания datetime в начале июля 2016 года, «одиннадцать шестьдесят шесть дней пять часов одна секунда».

Если вы просто зададите Майкрофту этот вопрос, он перейдет к Wolfram, который выдаст желаемый результат. Я понимаю, что это кошмарная задача - пытаться решать дни за несколько лет, учитывая високосные годы и все такое, но я считаю, что она должна дойти как минимум до сотен: «одиннадцатьсот шестьдесят шесть дней ...» (или «одна тысяча сто шестьдесят шесть» дней ")

help wanted

Все 8 Комментарий

Спасибо, что сообщили об этом :)

Если кто-то хочет справиться с этим и хочет справиться с високосными годами, я недавно использовал следующее в навыке Date-Time Skill:

def is_leap_year(self, year):
    return (year % 400 == 0) or ((year % 4 == 0) and (year % 100 != 0))

Также в стандартной библиотеке есть функция calendar.isleap ...

Модуль Humanize тоже может быть чем-то интересным ...

>>> humanize.naturaldelta(timedelta(minutes=40, hours=360000))
'41 years'

Если кто-то собирается реорганизовать эту функцию, возможно, стоит дать ей разрешение, пока они там есть. Для Майкрофта забавно и на 100% характерно сказать вам, сколько секунд прошло с того дня, но кодировщики могут предпочесть указать nice_duration_years() или nice_duration(dt1, dt2, <str>resolution)

Да, я думал о «разрешении» для ряда этих функций, но не хочу вносить критические изменения. Похоже, здесь это могло бы стать меньшей проблемой, если бы мы добавили только необязательный параметр, и он по-прежнему просто возвращает строку, например:
nice_duration(<int>seconds, <str>resolution)

Поскольку я сам не кодирую это, я сделаю тысячу предложений!

Если эти функции все же будут разрешены, возможно, годы могут работать в течение трех триместров, или подумайте о том, сколько месяцев и т. Д. Имеют значение между «примерно 2 годами», «почти 2 годами», «немногим более 2 лет» или просто «2 годами». годы"

Я только что начал возиться с этим в переводчике, и не думаю, что это будет так сложно, как я думал. Если еще никто не начал, я сделаю это после обеда.

Исправить слито.

Была ли эта страница полезной?
0 / 5 - 0 рейтинги