Можно ли Humanize TimeSpan до нескольких лет с Humanizer?

Мы хотим использовать пакет Humanizer (как мы его используем в другом месте) и не хотим добавлять больше похожих библиотек или код, созданный вручную.

У меня есть временные промежутки, некоторые из которых тысячи дней. Я хочу очеловечить их и преобразовать в годы. Теперь я ценю, что год меняется, но если я перевожу 10000 дней в годы - я доволен потерей точности.

 TimeSpan.FromDays(10000).Humanize(minUnit: TimeUnit.Year);

возвращается

"нет времени"

TimeSpan.FromDays (10000).Humanize ();

возвращается

"1428 недель"

Если я преобразую их в DateTimes, добавив в сейчас.

DateTime.Today.Add(TimeSpan.FromDays(10000)).Humanize(); 

возвращается

"27 лет спустя"

Это всегда добавляется с этого момента - могу ли я удалить текущую часть встроенным способом?

1 ответ

Решение

Как вы узнали, Humanizer не может описать TimeSpanс точностью больше недели. Это потому, что невозможно узнать, есть ли в году 365 или 366 дней или сколько дней в месяце.

Однако это возможно, когда необходимо описать относительную TimeSpan (то есть некоторое время назад), потому что Humanizer может рассчитать, есть ли день 365 или 366 дней.

После объединения запроса на извлечение № 604 эта функция должна быть доступна и рассчитывать год как 365,25 дней. Это приведет к потере точности, но, как вы упомянули, это не проблема.

Другие вопросы по тегам