/// <summary> /// 暂时不使用 /// </summary> /// <param name="lastExeTime"></param> /// <param name="timeOffset"></param> /// <param name="overday"></param> /// <returns></returns> public override TimeScope GetNextTimeScope(TimeSpan lastExeTime, TimeSpan timeOffset, out bool overday) { TimeScope execTimeScope = GetTimeScope(lastExeTime, timeOffset); TimeSpan nextTime; overday = false; if (execTimeScope != null) { nextTime = lastExeTime.Add(GetIntervalTimeSpan()); if (nextTime > this.EndTime) { overday = true; } else { nextTime = this.StartTime; } } else { nextTime = this.StartTime; } return(GetTimeScope(nextTime, timeOffset)); }
private TimeScope CreateTimeScope(TimeSpan timeOffset) { TimeScope result = new TimeScope(); result.BeginTime = this.OccurTime - timeOffset; result.EndTime = this.OccurTime + timeOffset; return result; }
private TimeScope CreateTimeScope(TimeSpan timeOffset) { TimeScope result = new TimeScope(); result.BeginTime = this.OccurTime - timeOffset; result.EndTime = this.OccurTime + timeOffset; return(result); }
public override TimeScope GetTimeScope(TimeSpan timePoint, TimeSpan timeOffset) { TimeScope result = null; if (timePoint >= this.OccurTime - timeOffset && timePoint < this.OccurTime + timeOffset) { result = CreateTimeScope(timeOffset); } return(result); }
/* * public DateTime LastModifyTime * { * get; * set; * } */ public TimeScope GetTimeScope(DateTime startTime, DateTime timePoint, TimeSpan timeOffset) { TimeScope result = null; if (DateIsMatched(startTime, timePoint)) { if (FrequencyTime != null) { result = FrequencyTime.GetTimeScope(timePoint.TimeOfDay, timeOffset); } } return(result); }
/// <summary> /// 比较两个Scope是否相等 /// </summary> /// <param name="scope1"></param> /// <param name="scope2"></param> /// <returns></returns> public static bool Compare(TimeScope scope1, TimeScope scope2) { bool result = false; if (scope1 == null && scope2 == null) { result = true; } else { if (scope1 != null && scope2 != null) result = (scope1.BeginTime == scope2.BeginTime && scope1.EndTime == scope2.EndTime); } return result; }
/// <summary> /// 得到某时间段属于的时间周期 /// </summary> /// <param name="timePoint"></param> /// <returns></returns> public override TimeScope GetTimeScope(TimeSpan timePoint, TimeSpan timeOffset) { TimeScope result = null; if (timePoint >= this.StartTime && timePoint < this.EndTime) { result = new TimeScope(); TimeSpan interval = GetIntervalTimeSpan(); double beginPoint = Math.Floor((timePoint.TotalSeconds - this.StartTime.TotalSeconds) / interval.TotalSeconds) * interval.TotalSeconds; result.BeginTime = this.StartTime + TimeSpan.FromSeconds(beginPoint); result.EndTime = result.BeginTime + interval; } return(result); }
/// <summary> /// 暂时不使用 /// </summary> /// <param name="lastExeTime"></param> /// <param name="overday"></param> /// <returns></returns> public override TimeScope GetNextTimeScope(TimeSpan lastExeTime, TimeSpan timeOffset, out bool overday) { TimeScope result = GetTimeScope(lastExeTime, timeOffset); overday = false; if (result != null) { overday = true; } else { result = CreateTimeScope(timeOffset); } return(result); }
/// <summary> /// 比较两个Scope是否相等 /// </summary> /// <param name="scope1"></param> /// <param name="scope2"></param> /// <returns></returns> public static bool Compare(TimeScope scope1, TimeScope scope2) { bool result = false; if (scope1 == null && scope2 == null) { result = true; } else { if (scope1 != null && scope2 != null) { result = (scope1.BeginTime == scope2.BeginTime && scope1.EndTime == scope2.EndTime); } } return(result); }
/// <summary> /// 根据上次执行时间和预计时间,判断预计时间是否是下次执行时间 /// </summary> /// <param name="lastExeTime"></param> /// <param name="nextCheckPoint"></param> /// <returns></returns> public bool IsNextExecuteTime(TimeSpan lastExeTime, TimeSpan nextCheckPoint, TimeSpan timeOffset) { TimeScope lastScope = GetTimeScope(lastExeTime, timeOffset); TimeScope nextScope = GetTimeScope(nextCheckPoint, timeOffset); bool result = false; if (nextScope != null) { result = TimeScope.Compare(lastScope, nextScope) == false; if (result) { result = (nextCheckPoint - GetMinExecuteInterval()) >= lastExeTime; } } return(result); }
/// <summary> /// 根据上次执行时间,判断检查点是否符合执行时间 /// </summary> /// <param name="startTime"></param> /// <param name="lastExeTime"></param> /// <param name="nextCheckPoint"></param> /// <returns></returns> public bool IsNextExecuteTime(DateTime startTime, DateTime lastExeTime, DateTime nextCheckPoint, TimeSpan timeOffset) { bool result = false; if (lastExeTime.Date != nextCheckPoint.Date) { //上次执行时间和检查点不是同一天 TimeScope scope = GetTimeScope(startTime, nextCheckPoint, timeOffset); result = scope != null; } else { //上次执行时间和检查点是同一天 if (DateIsMatched(startTime, nextCheckPoint) && FrequencyTime != null) { result = FrequencyTime.IsNextExecuteTime(lastExeTime.TimeOfDay, nextCheckPoint.TimeOfDay, timeOffset); } } return(result); }
/// <summary> /// 得到某时间段属于的时间周期 /// </summary> /// <param name="timePoint"></param> /// <returns></returns> public override TimeScope GetTimeScope(TimeSpan timePoint, TimeSpan timeOffset) { TimeScope result = null; if (timePoint >= this.StartTime && timePoint < this.EndTime) { result = new TimeScope(); TimeSpan interval = GetIntervalTimeSpan(); double beginPoint = Math.Floor((timePoint.TotalSeconds - this.StartTime.TotalSeconds) / interval.TotalSeconds) * interval.TotalSeconds; result.BeginTime = this.StartTime + TimeSpan.FromSeconds(beginPoint); result.EndTime = result.BeginTime + interval; } return result; }