quartz.net 根據cron表示式計算最近幾次的執行時間
阿新 • • 發佈:2019-02-03
網上查了很久,沒找到.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);