/// <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);
        }
Example #6
0
		/// <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);
        }
Example #9
0
        /// <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;
		}