TimeStringBuilderBase GetStringBuilder(TimeStringFormat format) { if (_stringBuilders.ContainsKey(format)) { return(_stringBuilders[format]); } else { Debug.LogWarning("Can't Find TimeStringBuilder For Format {format}"); return(_stringBuilders[TimeStringFormat.Default]);; } }
/// <summary> /// /// </summary> /// <param name="clock_in">set the internal time representation to the given object</param> public ClockViewModelBase(T clock_in) { //if (!typeof(E).IsEnum) // throw new XArchitectureException(); _clock = clock_in; if (TimeStringFormat == null || TimeStringFormat == string.Empty || TimeStringFormat == "") { StringBuilder sb = new StringBuilder(); int indexOfLastItem = Enum.GetValues(typeof(E)).Length - 1; for (int i = 0; i < indexOfLastItem; i++) { sb.AppendFormat("{{{0}}}.", i); } sb.AppendFormat("{{{0}}}", indexOfLastItem); // the last element should not contain a trailing '.'(period). TimeStringFormat = sb.ToString(); } if (TimeStringFormat.Count((c) => c == '{') != Enum.GetValues(typeof(E)).Length) { throw new TimeStringFormatMismatchException(); } }
public string BuildTimeString(System.DateTime cst, TimeStringFormat format = TimeStringFormat._h_m_s) { var builder = GetStringBuilder(format); return(builder.Build(cst)); }
public string BuildTimeString(System.TimeSpan tSpan, TimeStringFormat format = TimeStringFormat._h_m_s) { var builder = GetStringBuilder(format); return(builder.BuildSpan(tSpan)); }
/// <summary> /// 构建时间长度的字符串 /// </summary> /// <param name="timeSpan">时间跨度,毫秒</param> /// <param name="format">字符串格式</param> /// <returns></returns> public string BuildTimeString(long timeSpanMs, TimeStringFormat format = TimeStringFormat._h_m_s) { var builder = GetStringBuilder(format); return(builder.BuildSpan(timeSpanMs)); }