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());

 

posted @   星星c#  阅读(118)  评论(0编辑  收藏  举报
编辑推荐:
· .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 中如何实现缓存的预热?
点击右上角即可分享
微信分享提示