2 个不稳定版本
0.3.0-beta.1 | 2024年1月24日 |
---|---|
0.1.0-beta.1 | 2024年1月20日 |
在 日期和时间 中排名第 227
55KB
1.5K SLoC
Timex:日期时间调度生成器
这个Rust库允许您根据起始日期和结束日期以及其他参数生成日期时间。它使用chrono crate进行日期和时间操作。
演示
https://github.com/jawahar273/timex/assets/7668497/841621b1-6325-4804-8dc3-cb5124c42a96
要查看重制的演示,请查看 server/README.md
。
功能
- 时间范围
- 发生
- 基于每日、每周、每月(WIP:结束日期)和每年(即将推出)。
- Webassembly支持(即将推出)
限制
- 不适合纳秒级,因为这个项目依赖于(
Chrono
)具有已知限制。 - 建议使用持久数据库来存储调度日期和时间。
用法
use timex::{
schedule_date_times,
model::ScheduleDetails
};
use chrono::{DateTime, Utc};
use serde_json;
fn main() {
// Start: Mock for schedule details
let t = r#"
{
"scheduledStartDateTime": "2023-12-14T08:00:44.939Z",
"repeatEveryNumber": 1,
"repeatEvery": "day",
"endOption": "never"
}
"#;
let job_details: ScheduleDetails = serde_json::from_str(&t).unwrap();
// END: Mock for schedule details
let previous_scheduled_date = DateTime::parse_from_rfc3339("2024-01-03T00:00:00Z")
.unwrap()
.with_timezone(&Utc);
let start_range = DateTime::parse_from_rfc3339("2024-01-01T00:00:00Z")
.unwrap()
.with_timezone(&Utc);
let end_range = DateTime::parse_from_rfc3339("2024-01-07T00:00:00Z")
.unwrap()
.with_timezone(&Utc);
let result = schedule_date_times(
&job_details,
previous_scheduled_date,
start_range,
end_range,
);
println!("{:?}",&result.unwrap());
// [
// 2024-01-04T00:00:00Z,
// 2024-01-05T00:00:00Z,
// 2024-01-06T00:00:00Z,
// 2024-01-07T00:00:00Z
// ]
}
许可证
本项目受MIT许可证许可。
关于此项目
依赖关系
~5.5–8MB
~135K SLoC