Пример #1
0
        public static RemainTime CalculateTime(DateTime startTime, DateTime endTime, int index, int total)
        {
            TimeSpan ts = endTime - startTime;

            decimal avgTime           = decimal.Divide((decimal)ts.TotalMilliseconds, index);
            decimal totalMilliseconds = decimal.Multiply(total - index, avgTime);                         //毫秒
            decimal totalHours        = Math.Round(decimal.Divide(totalMilliseconds, 1000 * 60 * 60), 2); //时
            decimal totalMinutes      = Math.Round(decimal.Divide(totalMilliseconds, 1000 * 60));         //分
            decimal totalSeconds      = Math.Round(decimal.Divide(totalMilliseconds, 1000));              //秒

            RemainTime remainTime = new RemainTime();

            if (totalSeconds < 60)
            {
                remainTime.Value          = totalSeconds;
                remainTime.RemainTimeType = EnumRemainTimeType.Second;
            }
            else if (totalMinutes < 60)
            {
                remainTime.Value          = totalMinutes;
                remainTime.RemainTimeType = EnumRemainTimeType.Minute;
            }
            else
            {
                remainTime.Value          = totalHours;
                remainTime.RemainTimeType = EnumRemainTimeType.Hour;
            }

            return(remainTime);
        }
 public ProgressEventArgs(int num, int loopNum, RemainTime remainTime) : this(num, loopNum)
 {
     this.remainTime = remainTime;
 }