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