Exemple #1
0
 protected override DateTime?CalcNextExecuteTime()
 {
     if (LastExecuteTime != null && LastExecuteTime.GetValueOrDefault() != DateTime.MinValue)    //如果已经执行过的
     {
         return(DateTime.MaxValue);
     }
     else
     {
         return(ExecuteTimeSpan);
     }
 }
Exemple #2
0
        protected override DateTime?CalcNextExecuteTime()
        {
            if (TaskType == TaskExecuteType.Manual)
            {
                return(null);
            }

            var tempTime = LastExecuteTime.GetValueOrDefault(DateTime.Now);

            tempTime = tempTime.AddMilliseconds(realTimeSpan.TotalMilliseconds);

            return(tempTime);
        }
Exemple #3
0
        protected override DateTime?CalcNextExecuteTime()
        {
            if (TaskType == TaskExecuteType.Manual)
            {
                return(null);
            }

            var span = this.ExecuteTimeSpan;

            switch (CycleType)
            {
            case CycleScheduleType.PerDay:
            {
                DateTime tempTime = DateTime.Now;

                //if (LastExecuteTime == null || LastExecuteTime<DateTime.Now)
                //{
                tempTime = DateTime.Now;

                if (tempTime.Hour <= span.Hour && tempTime.Minute <= span.Minute)
                {
                    tempTime = DateTime.Now;
                }
                else
                {
                    tempTime = DateTime.Now.AddDays(1);
                }
                //}
                //else
                //{
                //    tempTime = LastExecuteTime.GetValueOrDefault().AddDays(1);
                //}

                return(new DateTime(tempTime.Year, tempTime.Month, tempTime.Day, span.Hour, span.Minute,
                                    span.Second));;
            }

            case CycleScheduleType.PerWeek:
            {
                DateTime tempTime = DateTime.Now;

                if ((int)tempTime.DayOfWeek < span.Day - 1)
                {
                    tempTime = tempTime.ThisWeek((DayOfWeek)(span.Day - 1));
                }
                else if ((int)tempTime.DayOfWeek < span.Day - 1)
                {
                    if (tempTime.TimeOfDay > span.TimeOfDay)
                    {
                        tempTime = tempTime.NextWeek((DayOfWeek)(span.Day - 1));
                    }
                }
                else
                {
                    tempTime = tempTime.NextWeek((DayOfWeek)(span.Day - 1));
                }

                return(new DateTime(tempTime.Year, tempTime.Month, tempTime.Day, span.Hour, span.Minute, span.Second));
            }
            break;

            case CycleScheduleType.PerMonth:
            {
                DateTime tempTime;

                if (LastExecuteTime == null)
                {
                    tempTime = DateTime.Now;

                    if (tempTime.Day <= span.Day && tempTime.Hour <= span.Hour && tempTime.Minute <= span.Minute)
                    {
                        tempTime = DateTime.Now;
                    }
                    else
                    {
                        tempTime = DateTime.Now.AddMonths(1);
                    }
                }
                else
                {
                    tempTime = LastExecuteTime.GetValueOrDefault().AddMonths(1);
                }

                return(new DateTime(tempTime.Year, tempTime.Month, span.Day, span.Hour, span.Minute, span.Second));
            }

            case CycleScheduleType.PerHour:
            {
                DateTime tempTime;

                if (LastExecuteTime == null)
                {
                    tempTime = DateTime.Now;

                    if (tempTime.Minute < span.Minute)
                    {
                        tempTime = DateTime.Now;
                    }
                    else
                    {
                        tempTime = DateTime.Now.AddHours(1);
                    }
                }
                else
                {
                    tempTime = LastExecuteTime.GetValueOrDefault().AddHours(1);
                }

                return(new DateTime(tempTime.Year, tempTime.Month, tempTime.Day, tempTime.Hour, span.Minute, span.Second));
            }

            default:
                return(DateTime.MaxValue);
            }
        }
Exemple #4
0
 public string GetTargetFolderName()
 {
     return(LastExecuteTime.ToString("yyyyMMddHHmmss"));
 }