Files
sbox-public/engine/Sandbox.System/Extend/TimeSpanExtensions.cs
s&box team 71f266059a Open source release
This commit imports the C# engine code and game files, excluding C++ source code.

[Source-Commit: ceb3d758046e50faa6258bc3b658a30c97743268]
2025-11-24 09:05:18 +00:00

38 lines
1.2 KiB
C#

namespace Sandbox;
public static partial class SandboxSystemExtensions
{
public static string ToRelativeTimeString( this TimeSpan span )
{
if ( span.TotalMinutes < 30 ) return "just now";
if ( span.TotalHours < 6 ) return "recently";
if ( span.TotalHours < 24 ) return "today";
if ( span.TotalHours < 48 ) return "yesterday";
if ( span.TotalDays < 8 ) return "this week";
if ( span.TotalDays < 15 ) return "last week";
if ( span.TotalDays < 30 ) return "this month";
if ( span.TotalDays < 60 ) return "last month";
if ( span.TotalDays < 365 ) return "this year";
if ( span.TotalDays < 365 * 2 ) return "last year";
return "ages ago";
}
public static string ToRemainingTimeString( this TimeSpan span )
{
if ( span == TimeSpan.Zero )
return "";
if ( span == TimeSpan.MaxValue )
return "Calculating...";
if ( span.TotalDays >= 1 )
return $"{span.Days} day{(span.Days > 1 ? "s" : "")} remaining";
if ( span.TotalHours >= 1 )
return $"{span.Hours} hour{(span.Hours > 1 ? "s" : "")} remaining";
if ( span.TotalMinutes >= 1 )
return $"{span.Minutes} minute{(span.Minutes > 1 ? "s" : "")} remaining";
return $"{span.Seconds} second{(span.Seconds > 1 ? "s" : "")} remaining";
}
}