7 releases
0.2.0 | Jul 26, 2022 |
---|---|
0.2.0-alpha5 | Jun 1, 2022 |
0.2.0-alpha4 | May 31, 2022 |
0.1.8 | Mar 18, 2022 |
0.0.1 | Mar 8, 2022 |
#1 in #cronos
Used in 2 crates
(via cronos-scheduler)
64KB
1.5K
SLoC
cronos-cron
A cron expression parser that's safe to use in the Solana runtime. Works with stable Rust v1.28.0.
use cronos_cron::Schedule;
use chrono::{DateTime, NaiveDateTime, 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 2018/2";
let schedule = Schedule::from_str(expression).unwrap();
let ts = 1234567890;
let next_exec_at = schedule
.after(&DateTime::<Utc>::from_utc(
NaiveDateTime::from_timestamp(ts, 0),
Utc,
))
.take(1)
.next()
{
Some(datetime) => Some(datetime.timestamp()),
None => None,
}
}
/*
Upcoming fire times:
-> 2018-06-01 09:30:00 UTC
-> 2018-06-01 12:30:00 UTC
-> 2018-06-01 15:30:00 UTC
-> 2018-06-15 09:30:00 UTC
-> 2018-06-15 12:30:00 UTC
-> 2018-06-15 15:30:00 UTC
-> 2018-08-01 09:30:00 UTC
-> 2018-08-01 12:30:00 UTC
-> 2018-08-01 15:30:00 UTC
-> 2018-08-15 09:30:00 UTC
*/
Dependencies
~2.5MB
~38K SLoC