SwiftCron
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 9.0 and above.
SwiftCron was built for use in an upcoming project for [Prolific Idea](http://www.prolificidea.com/). You can find them on [Github](https://github.com/prolific-idea), [Twitter](https://twitter.com/prolificidea), or their [website](http://www.prolificidea.com/).
Installation
CocoaPods
Podfile:
source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '9.0'
use_frameworks!
pod 'SwiftCron'
Carthage
Cartfile:
github "thecodedself/swiftcron" >= 0.4.5
Swift Package Manager
Package.swift
:
.Package(url: "https://github.com/TheCodedSelf/SwiftCron.git", majorVersion: 0)
How to
Create a Cron Expression
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")
Manually create an expression
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 * *")
Get the next run date
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)
Requirements
- iOS 9.0 or greater
- Xcode 8.0 or greater
- Swift 3 or greater