/// <summary> /// 获取时间间隔字符串 /// </summary> /// <param name="state">结束方式</param> /// Start -> 开始计时 /// End -> 结束计时并返回时间间隔 /// Reload -> 重启计时并返回上次时间间隔 /// <returns>返回结果</returns> public string StrMarkTime(MarkTimeStatus state = MarkTimeStatus.Reload) { string spanTime; TimeSpan ts = markTime(state); if (ts.Days > 0) { spanTime = ts.Days.ToString() + "天" + ts.Hours.ToString() + "时" + ts.Minutes.ToString() + "分" + ts.Seconds.ToString() + "秒" + ts.Milliseconds.ToString() + "毫秒"; } else if (ts.Hours > 0) { spanTime = ts.Hours.ToString() + "时" + ts.Minutes.ToString() + "分" + ts.Seconds.ToString() + "秒" + ts.Milliseconds.ToString() + "毫秒"; } else if (ts.Minutes > 0) { spanTime = ts.Minutes.ToString() + "分" + ts.Seconds.ToString() + "秒" + ts.Milliseconds.ToString() + "毫秒"; } else if (ts.Seconds > 0) { spanTime = ts.Seconds.ToString() + "秒" + ts.Milliseconds.ToString() + "毫秒"; } else { spanTime = ts.Milliseconds.ToString() + "毫秒"; } return(spanTime); }
/// <summary> /// 时间管理函数 /// </summary> /// <param name="state"> /// Start -> 开始计时 /// End -> 结束计时并返回时间间隔 /// Reload -> 重启计时并返回上次时间间隔 /// </param> /// <returns></returns> private TimeSpan markTime(MarkTimeStatus state) { if (state == MarkTimeStatus.Start) { StartTime = new TimeSpan(DateTime.Now.Ticks); return(StartTime); } else if (state == MarkTimeStatus.Reload) { TimeSpan timeSpan = markTime(MarkTimeStatus.End); markTime(MarkTimeStatus.Start); return(timeSpan); } else { EndTime = new TimeSpan(DateTime.Now.Ticks); return(EndTime.Subtract(StartTime).Duration()); } }
/// <summary> /// 记时 /// </summary> /// <param name="state">0:开始计时;1:计时结束</param> /// <param name="type">随便填字符串,用于区分记录,不影响功能</param> /// <param name="str">随便填字符串,用于区分记录,不影响功能</param> public static TimeSpan MarkTime(MarkTimeStatus state, string type = "", string str = "") { if (state == MarkTimeStatus.Start) { //记录调用接口前的时间 startTime = new TimeSpan(DateTime.Now.Ticks); //Console.WriteLine("开始记录接口" + str + "的相应时间:"); return(startTime); } else { //记录调用接口后的时间 endTime = new TimeSpan(DateTime.Now.Ticks); TimeSpan ts = endTime.Subtract(startTime).Duration(); //计算时间间隔,求出调用接口所需要的时间 String spanTime; if (ts.Minutes > 0) { spanTime = ts.Minutes.ToString() + "分" + ts.Seconds.ToString() + "秒" + ts.Milliseconds.ToString() + "毫秒"; } else if (ts.Seconds > 0) { spanTime = ts.Seconds.ToString() + "秒" + ts.Milliseconds.ToString() + "毫秒"; } else { spanTime = ts.Milliseconds.ToString() + "毫秒"; } //打印时间 //if (ts.Minutes > 1 || ts.Seconds > 5) //{ // Logger.Info(string.Format("{0}接口耗时:{1}", str, spanTime)); //} Console.WriteLine(str + type + "耗时:" + spanTime); return(ts); } }
/// <summary> /// 获取时间间隔 /// </summary> /// <param name="state">结束方式</param> /// Start -> 开始计时 /// End -> 结束计时并返回时间间隔 /// Reload -> 重启计时并返回上次时间间隔 /// <returns>返回结果</returns> public TimeSpan MarkTime(MarkTimeStatus state = MarkTimeStatus.Reload) { return(markTime(state)); }