38 lines
1.4 KiB
C#
38 lines
1.4 KiB
C#
using System;
|
|
|
|
namespace SharpUI.Source.Common.UI.Util.TimeUtils
|
|
{
|
|
public class CooldownTimeFormatter : TimeFormatter
|
|
{
|
|
private const float Seconds10 = 10.0f;
|
|
private const float MinuteInSeconds = 60.0f;
|
|
private const float HourInSeconds = 3600.0f;
|
|
private const float DayInSeconds = 86400.0f;
|
|
|
|
private const string FormatSecondLessThan10 = "{0:0.0}";
|
|
private const string FormatSecondLessThan60 = "{0:0 s}";
|
|
private const string FormatMinutes = "{0:0 m}";
|
|
private const string FormatHours = "{0:0 h}";
|
|
private const string FormatDays = "{0:0 d}";
|
|
|
|
public override string FormatSeconds(float seconds)
|
|
{
|
|
if (seconds < Seconds10)
|
|
return string.Format(FormatSecondLessThan10, seconds);
|
|
|
|
if (seconds < MinuteInSeconds)
|
|
return string.Format(FormatSecondLessThan60, seconds);
|
|
|
|
var minutes = Math.Ceiling(seconds / MinuteInSeconds);
|
|
if (seconds < HourInSeconds)
|
|
return string.Format(FormatMinutes, minutes);
|
|
|
|
var hours = Math.Ceiling(seconds / HourInSeconds);
|
|
if (seconds < DayInSeconds)
|
|
return string.Format(FormatHours, hours);
|
|
|
|
var days = Math.Ceiling(seconds / DayInSeconds);
|
|
return string.Format(FormatDays, days);
|
|
}
|
|
}
|
|
} |