Time format conversion and format conversion
Time format conversion class
Time string format and millisecond form conversion class.
Using System; namespace myspace {/// <summary> /// specify several constants, indicating the timing format. /// </Summary> public enum TimingFormat: byte {// <summary> /// millisecond. /// </Summary> Ms, /// <summary> /// second /// </summary> S, /// <summary> /// // </summary> M, /// <summary> /// // </summary> H, /// <summary> // The second is superb /// </summary> S_Ms, /// <summary> /// minute second /// </summary> M_S, /// <summary> /// hour // </summary> H_M, /// <summary> /// minute second millisecond /// </summary> M_S_Ms, /// <summary> /// hour and second /// </summary> H_M_S, /// <summary> /// minute-second millisecond // </summary> H_M_S_Ms} /// <summary> // The time string format matches the millisecond format Conversion class. /// </Summary> public static class TimeFormat {# region converts the time in milliseconds to the string format. /// <summary> /// converts the time in milliseconds to a string. (00:00:00. 000. /// </Summary> /// <param name = "milliseconds"> Number of milliseconds. </Param> /// a string of <param name = "format"> A part of the time </param> /// <returns>. </Returns> public static string ToTimeString (ulong milliseconds, TimingFormat format) {ulong MS = milliseconds % 1000; ulong s = milliseconds/1000; ulong h = s/3600; ulong m = (s-(h * 3600)/60; s = s-(h * 3600 + m * 60); switch (format) {case TimingFormat. ms: return string. format ("{0: D3}", MS); case TimingFormat. s: return string. format ("{0: D2}", s); case TimingFormat. m: return string. format ("{0: D2 }", M); case TimingFormat. h: return string. format ("{0: D2}", h); case TimingFormat. s_Ms: return string. format ("{0: D2 }. {1: D3} ", s, MS); case TimingFormat. m_S: return string. format ("{0: D2 }:{ 1: D2}", m, s); case TimingFormat. h_M: return string. format ("{0: D2 }:{ 1: D2}", h, m); case TimingFormat. m_S_Ms: return string. format ("{0: D2 }:{ 1: D2 }. {2: D3} ", m, s, MS); case TimingFormat. h_M_S: return string. format ("{0: D2 }:{ 1: D2 }:{ 2: D2} ", h, m, s); default: return string. format ("{0: D2 }:{ 1: D2 }:{ 2: D2 }. {3: D3} ", h, m, s, MS );}} # endregion # region converts the string format time to the millisecond format // <summary> // converts the string format (00:00:00. 000. /// </Summary> /// <param name = "timeStr"> string format of time. </Param> /// <param name = "format"> string format. </Param> // <returns> time in milliseconds. </Returns> public static ulong ToTimeULong (string timeStr, TimingFormat format) {timeStr = timeStr. trim (); switch (format) {case TimingFormat. h: return Convert. toUInt64 (timeStr) * 3600*1000; case TimingFormat. m: return Convert. toUInt64 (timeStr) * 60*1000; case TimingFormat. s: return Convert. toUInt64 (timeStr) * 1000; case TimingFormat. ms: return Convert. toUInt64 (timeStr); case TimingFormat. s_Ms: string [] sms = timeStr. split ('. '); return ToTimeULong (sms [0], TimingFormat. s) + ToTimeULong (sms [1], TimingFormat. ms); case TimingFormat. m_S: string [] MS = timeStr. split (':'); return ToTimeULong (MS [0], TimingFormat. m) + ToTimeULong (MS [1], TimingFormat. s); case TimingFormat. h_M: string [] hm = timeStr. split (':'); return ToTimeULong (hm [0], TimingFormat. h) + ToTimeULong (hm [1], TimingFormat. m); case TimingFormat. m_S_Ms: string [] msms = timeStr. split (':'); return ToTimeULong (msms [0], TimingFormat. m) + ToTimeULong (msms [1], TimingFormat. s_Ms); case TimingFormat. h_M_S: string [] hms = timeStr. split (':'); return ToTimeULong (hms [0], TimingFormat. h) + ToTimeULong (hms [1], TimingFormat. m) + ToTimeULong (hms [2], TimingFormat. s); default: string [] hmsms = timeStr. split (':'); return ToTimeULong (hmsms [0], TimingFormat. h) + ToTimeULong (hmsms [1], TimingFormat. m) + ToTimeULong (hmsms [2], TimingFormat. s_Ms) ;}# endregion }}