public static string FormatTime(float time, TIMEFORMAT format, bool richText) { if (double.IsInfinity(time) || double.IsNaN(time)) { return("Inf"); } string ret = ""; try { List <string> units = new List <string>(); switch (format) { case TIMEFORMAT.LONG_IDENTIFIER: if (richText) { units.AddRange(new string[] { " <b>years</b>, ", " <b>days</b>, ", " <b>hours</b>, ", " <b>minutes</b>, ", " <b>seconds</b>" }); } else { units.AddRange(new string[] { " years, ", " days, ", " hours, ", " minutes, ", " seconds" }); } break; case TIMEFORMAT.SHORT_IDENTIFIER: if (richText) { units.AddRange(new string[] { "<b>y</b> ", "<b>d</b> ", "<b>h</b> ", "<b>m</b> ", "<b>s</b>" }); } else { units.AddRange(new string[] { "y ", "d ", "h ", "m ", "s" }); } break; default: units.AddRange(new string[] { ":", ":", ":", ":", ":" }); break; } List <float> intervals = new List <float>(); intervals.AddRange(new float[] { DaysPerYear *HoursPerDay * 3600, HoursPerDay * 3600, 3600, 60, 1 }); for (int i = 0; i < units.Count; i++) { int amount = Mathf.FloorToInt(time / intervals[i]); if (amount > 0) { ret += string.Format("{0}{1}", amount, units[i]); time -= amount * intervals[i]; } } } catch (Exception) { return("NaN"); } return(ret); }
public static string TimeToStr(int t, TIMEFORMAT fmt) { if (t == -1) { switch (fmt) { case UClass.TIMEFORMAT.TIMEFMT_HMS: return("-:--:--"); break; case UClass.TIMEFORMAT.TIMEFMT_HM: return("-:--"); break; case UClass.TIMEFORMAT.TIMEFMT_MS: return("-:--"); break; case UClass.TIMEFORMAT.TIMEFMT_S: return("-"); break; } } else { TimeSpan ts = TimeSpan.FromSeconds(t); switch (fmt) { case UClass.TIMEFORMAT.TIMEFMT_HMS: return(string.Format("{0:D}:{1:D2}:{2:D2}", ts.Hours, ts.Minutes, ts.Seconds)); break; case UClass.TIMEFORMAT.TIMEFMT_HM: return(string.Format("{0:D}:{1:D2}", ts.Hours, ts.Minutes)); break; case UClass.TIMEFORMAT.TIMEFMT_MS: return(string.Format("{0:D}:{1:D2}", ts.Minutes, ts.Seconds)); break; case UClass.TIMEFORMAT.TIMEFMT_S: return(t.ToString()); break; } } return("-"); }