Можно ли 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 дней. Это приведет к потере точности, но, как вы упомянули, это не проблема.