TestsTested | ✓ |
LangLanguage | SwiftSwift |
License | MIT |
ReleasedLast Release | Nov 2018 |
SPMSupports SPM | ✗ |
Maintained by Keegan Rush.
A cron expression parser that can take a cron string and give you the next run date and time specified in the string. SwiftCron can be used on iOS 8.0 and above.
SwiftCron was built for use in an upcoming project for Prolific Idea. You can find them on Github, Twitter, or their website.
Creating a cron expression is easy. Just invoke the initializer with the fields you want.
// 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")
If you’d like to manually write the expression yourself, The cron format is as follows:
* * * * * *
(Minute) (Hour) (Day) (Month) (Weekday) (Year)
Initialize an instance of CronExpression with a string specifying the format.
// Every 11th May at midnight
let every11May = CronExpression(cronString: "0 0 11 5 * *")
Once you have your CronExpression, you can get the next time the cron will run. Call the getNextRunDate(_:) method and pass in the date to begin the search on.
// Every Friday 13th at midday
let myCronExpression = CronExpression(minute: "0", hour: "12", day: "13", weekday: "5")
let dateToStartSearchOn = NSDate()
let nextRunDate = myCronExpression.getNextRunDate(dateToStartSearchOn)