Skip to content

A cron expression parser, adapted to work in blockchain environments

License

Notifications You must be signed in to change notification settings

CronCats/Schedule

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

28 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

cron_schedule

A cron expression parser, adapted for blockchain environments.

extern crate cron_schedule;
extern crate chrono;

use cron_schedule::Schedule;
use chrono::Utc;
use std::str::FromStr;

fn main() {
  //               sec  min   hour   day of month   month   day of week   year
  let expression = "0   30   9,12,15     1,15       May-Aug  Mon,Wed,Fri  2021/2";
  let schedule = Schedule::from_str(expression).unwrap();
  println!("Upcoming fire times:");
  for datetime in schedule.upcoming().take(10) {
    println!("-> {}", datetime);
  }
}

/*
Upcoming fire times:
-> 2021-06-01 09:30:00 UTC
-> 2021-06-01 12:30:00 UTC
-> 2021-06-01 15:30:00 UTC
-> 2021-06-15 09:30:00 UTC
-> 2021-06-15 12:30:00 UTC
-> 2021-06-15 15:30:00 UTC
-> 2021-08-01 09:30:00 UTC
-> 2021-08-01 12:30:00 UTC
-> 2021-08-01 15:30:00 UTC
-> 2021-08-15 09:30:00 UTC
*/

Shorthand Support

This cron expression parser also supports shorthand notations for time intervals:

  • @yearly (equivalent to 0 0 0 1 1 * *)
  • @monthly (equivalent to 0 0 0 1 * * *)
  • @weekly (equivalent to 0 0 0 * * 1 *)
  • @daily (equivalent to 0 0 0 * * * *)
  • @hourly (equivalent to 0 0 * * * * *)

License

MIT license (LICENSE or http://opensource.org/licenses/MIT)

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you shall be dual licensed as above, without any additional terms or conditions.

About

A cron expression parser, adapted to work in blockchain environments

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages