Qrartz.net 在core上的学习记录 3、获取下次或下几次的运行时间
备注:以下代码是从网上摘抄
方法体:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | /// <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(DateTime.Now) .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("/5 * * ? * *", 10, DateTime.Now);
如果是简单表达式,代码如下:
ITrigger trigger1 = TriggerBuilder.Create() .WithIdentity("触发器名称", "触发器组") .StartAt(DateTime.Now.AddSeconds(180)) .EndAt(DateTime.Now.AddMinutes(10))//现在开始 .Build(); var ds = trigger1.GetFireTimeAfter(DateTime.Now); Console.WriteLine(((DateTimeOffset)ds).ToString());
分类:
Qrartz.net
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?