一个 cron 表达式解析器,能够从 cron 字符串中提取下一条运行的日期和时间。SwiftCron 可以在 iOS 8.0 和以上版本上使用。
SwiftCron 为即将到来的项目 Prolific Idea 而构建。您可以在 GitHub、Twitter 或他们的 网站上 找到他们。
创建 Cron 表达式非常简单。只需使用您需要的字段调用初始化器。
// Midnight every 8th day of the month
let myCronExpression = CronExpression(minute: "0", hour: "0", day: "8")
// Executes May 9th, 2024 at 11:30am
let anotherExpression = CronExpression(minute: "30", hour: "11", day: "9", month: "5", year: "2024")
// Every tuesday at 6:00pm
let everyTuesday = CronExpression(minute: "0", hour: "18", weekday: "3")
如果您想手动编写这个表达式,cron 格式如下
* * * * * *
(分钟) (小时) (天) (月) (星期) (年)
使用指定格式的字符串初始化一个 CronExpression 实例。
// Every 11th May at midnight
let every11May = CronExpression(cronString: "0 0 11 5 * *")
一旦有了 CronExpression,您就可以获取 cron 下一次运行的时间。调用 getNextRunDate(_:): 方法并传递一个开始搜索的日期。
// Every Friday 13th at midday
let myCronExpression = CronExpression(minute: "0", hour: "12", day: "13", weekday: "5")
let dateToStartSearchOn = NSDate()
let nextRunDate = myCronExpression.getNextRunDate(dateToStartSearchOn)