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; }