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);
}
}
}