• 封装的小类:统计程序上个阶段运行的时间长度和运行的总时长


    调用:

      TimeUseHelper th = new TimeUseHelper();//产生开始时间
    
      #region 第一个阶段的代码
      #endregion
      th.TimePeriodAndAll();
    
      #region 第二个阶段的代码
      #endregion
      th.TimePeriodAndAll();

    定义:

        /// <summary>
        /// 用于输出程序执行阶段所花费的时间长度
        /// </summary>
        public class TimeUseHelper
        {
            /// <summary>
            /// 开始时间
            /// </summary>
            public DateTime startTime { get; set; }
            /// <summary>
            /// 上一个结束时间(用于计算上个阶段一共耗费了多长时间)
            /// </summary>
            public DateTime lastTime { get; set; }
    
            /// <summary>
            /// 初始化,记录开始时间
            /// </summary>
            public TimeUseHelper()
            {
                startTime = DateTime.Now;
                lastTime = DateTime.Now;
            }
    
            /// <summary>
            /// 返回上一阶段耗费的时间
            /// </summary>
            public void TimePeriod()
            {
                DateTime now = DateTime.Now;
                if(now != lastTime)
                {
                    var timespan = now - lastTime;
                    lastTime = now;
                    Console.WriteLine($"  上个阶段耗时:{timespan.Minutes}分 {timespan.Seconds} 秒");
                }
            }
    
            /// <summary>
            /// 从开始到现在共耗费的时间
            /// </summary>
            public void TimeAll()
            {
                DateTime now = DateTime.Now;
                if (now != startTime)
                {
                    var timespan = now - startTime;
                    Console.WriteLine($"  共耗时:{timespan.Minutes}分 {timespan.Seconds} 秒");
                }
            }
    
            /// <summary>
            /// 上个阶段和总的时间
            /// </summary>
            public void TimePeriodAndAll()
            {
                DateTime now = DateTime.Now;
                var spon_period = now - lastTime;
                lastTime = now;
                var spon_all = now - startTime;
                if(spon_period.Hours == 0)
                {
                    Console.WriteLine($"  上个阶段耗时:{spon_period.Minutes}分 {spon_period.Seconds} 秒");
                }
                else
                {
                    Console.WriteLine($"  上个阶段耗时:{spon_period.Hours}小时 {spon_period.Minutes}分 {spon_period.Seconds} 秒");
                }
                
                if(spon_all.Hours == 0)
                {
                    Console.WriteLine($"  共耗时:{spon_all.Minutes}分 {spon_all.Seconds} 秒");
                }
                else
                {
                    Console.WriteLine($"  共耗时:{spon_all.Hours}小时 {spon_all.Minutes}分 {spon_all.Seconds} 秒");
                }
            }
        }
  • 相关阅读:
    杭电1058
    动态规划之背包模版
    按字典序依次打印只由1~n组成的n位数
    杭电1029
    杭电1257
    杭电2191
    杭电1114
    杭电2602
    南阳975
    杭电2138
  • 原文地址:https://www.cnblogs.com/zhangchaoran/p/10381745.html
Copyright © 2020-2023  润新知