网上查了很久,没找到.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);