1 个不稳定版本
0.1.0 | 2019年12月29日 |
---|
#408 在 日期和时间
每月21次下载
15KB
104 行
chrono_period
为chrono创建一个特定开始日期的持续时间跟踪的插件。
安装
这是一个chrono的插件,因此您需要与该库一起安装。在您的Cargo.toml
中,添加以下内容
[dependencies]
chrono = "^0.4.10"
chrono_period = "^0.1.0"
用法
您可以从两个NaiveDateTime
实例创建NaivePeriod
实例
let start = NaiveDateTime::new(NaiveDate::from_ymd(2020, 1, 1), NaiveTime::from_hms(0, 0, 0));
let end = NaiveDateTime::new(NaiveDate::from_ymd(2021, 1, 1), NaiveTime::from_hms(0, 0, 0));
let np = NaivePeriod::new(start, end);
或者从一个NaiveDateTime
和一个Duration
let start = NaiveDateTime::new(NaiveDate::from_ymd(2020, 1, 1), NaiveTime::from_hms(0, 0, 0));
let np = NaivePeriod::from_start_duration(start, Duration::days(366));
创建后,NaivePeriod
可用于相互交集
let start = NaiveDateTime::new(NaiveDate::from_ymd(2020, 1, 1), NaiveTime::from_hms(0, 0, 0));
let np1 = NaivePeriod::from_start_duration(start, Duration::days(366));
let end = NaiveDateTime::new(NaiveDate::from_ymd(2021, 1, 1), NaiveTime::from_hms(0, 0, 0));
let other = NaivePeriod::new(start, end);
let intersection = np.get_intersection_with(other);
assert_eq!(np1, intersection.unwrap());
路线图
目前,仅处理无时区的时间段。如果我们也处理具有偏移量的日期/时间交集,那就更好了。
依赖项
~1MB
~18K SLoC