Exemple #1
0
        /// <summary>
        /// 指定一年内的具体月份,从startTime开始,endTime结束,默认每个月1号0时0分0秒执行一次
        /// </summary>
        /// <param name="time"></param>
        /// <param name="startTime"></param>
        /// <param name="endTime"></param>
        /// <returns></returns>
        public static CronScheduleTime SetMonthCycle(this CronScheduleTime time, int startTime, int endTime)
        {
            if (startTime.IsOverDefaultRange(1, 12) || endTime.IsOverDefaultRange(1, 12) || startTime > endTime)
            {
                throw new Exception("设置的周期时间异常");
            }

            time.Second = time.Second.SetDefaultValue();

            time.Minute = time.Minute.SetDefaultValue();

            time.Hour = time.Hour.SetDefaultValue();

            time.SetDayDefaultValue();

            time.Month = $"{startTime}-{endTime}";

            return(time);
        }
Exemple #2
0
        /// <summary>
        /// 指定一年内里的具体月份,每经过该月份执行一次,默认该月份的1号0时0分0秒
        /// </summary>
        /// <param name="time"></param>
        /// <param name="months"></param>
        /// <returns></returns>
        public static CronScheduleTime SetSpecificMonth(this CronScheduleTime time, params int[] months)
        {
            Array.ForEach(months, i =>
            {
                if (i.IsOverDefaultRange(1, 12))
                {
                    throw new IndexOutOfRangeException($"设置的日期参数{i}异常");
                }
            });

            time.Second = time.Second.SetDefaultValue();

            time.Minute = time.Minute.SetDefaultValue();

            time.Hour = time.Hour.SetDefaultValue();

            time.SetDayDefaultValue();

            time.Month = string.Join(",", months);

            return(time);
        }
Exemple #3
0
        /// <summary>
        /// 指定一年内的执行间隔时间gapTime,延后开始时间startTime,默认为每个月1号0时0分0秒执行一次
        /// </summary>
        /// <param name="time"></param>
        /// <param name="gapTime"></param>
        /// <param name="startTime"></param>
        /// <returns></returns>
        public static CronScheduleTime SetMonthGap(this CronScheduleTime time, int gapTime, int startTime = 1)
        {
            if (gapTime.IsOverDefaultRange(1, 12))
            {
                throw new Exception("设置的间隔时间异常");
            }

            if (startTime.IsOverDefaultRange(1, 12))
            {
                throw new Exception("设置的延后开始时间异常");
            }

            time.Second = time.Second.SetDefaultValue();

            time.Minute = time.Minute.SetDefaultValue();

            time.Hour = time.Hour.SetDefaultValue();

            time.SetDayDefaultValue();

            time.Month = $"{startTime}/{gapTime}";

            return(time);
        }