1. 程式人生 > >quartz.net 根據cron表示式計算最近幾次的執行時間

quartz.net 根據cron表示式計算最近幾次的執行時間

網上查了很久,沒找到.net版本的,java的有些,後來自己看了下api,發現實現起來很簡單,程式碼再傳共享下
       /// <summary>
        /// Corn表示式的執行時間
        /// </summary>
        /// <param name="cron">表示式</param>
        /// <param name="times">計算次數</param>
        /// <param name="startTime">開始時間</param>
        /// <returns></returns>
        public static String getCronSchdule(String cron,int times, DateTimeOffset startTime)
        {
            String timeSchdule = "";
            if (!CronExpression.IsValidExpression(cron))
            {
                return "Cron is Illegal!";
            }
            try
            {
    
                ITrigger trigger1 = TriggerBuilder.Create()
   
                .WithCronSchedule(cron)
 
                .StartAt(BeginTime)
                .Build();
                DateTimeOffset? LastTime = startTime;
                Console.WriteLine(LastTime.ToString());
                for (int i =0;i< times;i++)
                {
                    DateTimeOffset? s = trigger1.GetFireTimeAfter(LastTime);
                    LastTime = s;
                    Console.WriteLine(((DateTimeOffset)s).AddHours(8).ToString());
                }
            

            }
            catch (Exception e)
            {
                timeSchdule = "unKnow Time!";
            }
            return timeSchdule;
        }
呼叫
getCronSchdule("0 */1 * * * ?", 10,DateTimeOffset.Now);