列出cron的下几次运行时间

static void Main(string[] args)
        {
                       
            while(true)
            {
                var corn = Console.ReadLine();
                 var s=getCronSchdule(corn, 10, DateTimeOffset.Now);
                Console.WriteLine(s);
            }
       

        }

        /// <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(DateTimeOffset.UtcNow)
                .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;
        }

  

posted on 2019-03-15 17:49  隨風.NET  阅读(252)  评论(0编辑  收藏  举报

导航