namespace Sandbox; public static partial class SandboxSystemExtensions { static DateTime epoch = new DateTime( 1970, 1, 1, 0, 0, 0, DateTimeKind.Utc ); /// /// Returns the UNIX time stamp - number of seconds since 1st of January, 1970. /// /// /// public static int GetEpoch( this DateTime d ) { var t = d - epoch; return (int)(t.TotalSeconds); } /// /// Converts UNIX time stamp to a DateTime object. /// /// UNIX time stamp in seconds. public static DateTime ToDateTime( this int seconds ) { return epoch.AddSeconds( seconds ); } /// public static DateTime ToDateTime( this long seconds ) { return epoch.AddSeconds( seconds ); } public static string ToRelativeTimeString( this DateTime dateTime ) { var span = DateTime.Now - dateTime; return span.ToRelativeTimeString(); } /// /// Convert date into a human readable relative time string. /// public static string Humanize( this DateTime dateTime ) { return Humanizer.DateHumanizeExtensions.Humanize( dateTime ); } /// /// Convert date into a human readable relative time string. /// public static string Humanize( this DateTimeOffset dateTime ) { return Humanizer.DateHumanizeExtensions.Humanize( dateTime ); } /// /// Convert date into a human readable relative time string. /// public static string Humanize( this TimeOnly dateTime ) { return Humanizer.DateHumanizeExtensions.Humanize( dateTime ); } /// /// Convert date into a human readable relative time string. /// public static string Humanize( this DateOnly dateTime ) { return Humanizer.DateHumanizeExtensions.Humanize( dateTime ); } /// /// Convert date into a human readable relative time string. /// public static string Humanize( this TimeSpan dateTime, int precision = 1 ) { return Humanizer.TimeSpanHumanizeExtensions.Humanize( dateTime, precision, minUnit: Humanizer.Localisation.TimeUnit.Second ); } }