Time Format Conversion
Time format conversion class
Time string format and millisecond form conversion class.
Using System; namespace myspace {////// Specify several constants, indicating the timing format. ///Public enum TimingFormat: byte {////// Millisecond. ///MS ,////// Second ///S ,////// Minute ///M ,////// Hour ///H ,////// Seconds ///S_Ms ,////// Minute second ///M_S ,////// Hour ///H_M ,////// Minute second millisecond ///M_S_Ms ,////// Minutes and seconds ///H_M_S ,////// Hour minute second millisecond ///H_M_S_Ms }////// Time string form and millisecond form conversion class. ///Public static class TimeFormat {# region converts the time in milliseconds to the string format ////// Convert the time in milliseconds to a part or whole of the string format (00:00:00. 000. //////The number of milliseconds.///A part of time///
Time string format.
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 time in the string form to the millisecond form ////// Converts a part or all of the string format (00:00:00. 000) to a time in milliseconds. //////Time string format.///String format.///
Time in milliseconds.
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 }}