20 lines
813 B
C#
20 lines
813 B
C#
|
|
using Humanizer;
|
||
|
|
using Humanizer.Localisation;
|
||
|
|
using NodaTime;
|
||
|
|
|
||
|
|
namespace Catalogger.Backend.Extensions;
|
||
|
|
|
||
|
|
public static class TimeExtensions
|
||
|
|
{
|
||
|
|
public static string Prettify(this TimeSpan timespan, TimeUnit minUnit = TimeUnit.Minute) =>
|
||
|
|
timespan.Humanize(minUnit: minUnit, precision: 5, collectionSeparator: null);
|
||
|
|
|
||
|
|
public static string Prettify(this Duration duration, TimeUnit minUnit = TimeUnit.Minute) =>
|
||
|
|
duration.ToTimeSpan().Prettify(minUnit);
|
||
|
|
|
||
|
|
public static string Prettify(this DateTimeOffset datetime, TimeUnit minUnit = TimeUnit.Minute) =>
|
||
|
|
(datetime - DateTimeOffset.Now).Prettify(minUnit);
|
||
|
|
|
||
|
|
public static string Prettify(this Instant instant, TimeUnit minUnit = TimeUnit.Minute) =>
|
||
|
|
(instant - SystemClock.Instance.GetCurrentInstant()).Prettify(minUnit);
|
||
|
|
}
|