namespace SoulstormReplayReader.Core.Utils;
public static class TicksFormatter
{
public static class Pattern
{
/// hours : minutes : seconds . milliseconds
public const string Hmsf = @"hh\:mm\:ss\.fff";
/// hours : minutes : seconds
public const string Hms = @"hh\:mm\:ss";
/// minutes : seconds
public const string Ms = @"mm\:ss";
/// minutes : seconds . milliseconds
public const string Msf = @"mm\:ss\.fff";
/// minutes : seconds . milliseconds
public const string Sf = @"ss\.fff";
}
public static string Format(int ticks, string pattern = Pattern.Hmsf) =>
TimeSpan.FromMilliseconds(ticks * 125).ToString(pattern);
public static string ShortFormat(int ticks)
{
var tickMillis = TimeSpan.FromMilliseconds(ticks * 125);
var formatPattern = tickMillis switch
{
{ Hours: 0 } => Pattern.Ms,
_ => Pattern.Hms
};
return tickMillis.ToString(formatPattern);
}
}