yoyoFan / SwiftCron

Swift Cron Expression Parser

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

SwiftCron

Build Status codecov CocoaPod Version

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

About

Swift Cron Expression Parser

License:MIT License


Languages

Language:Swift 97.3%Language:Ruby 1.6%Language:Objective-C 1.1%