3 个版本
0.1.2 | 2022年11月26日 |
---|---|
0.1.1 | 2021年1月22日 |
0.1.0 | 2021年1月22日 |
#243 在 日期和时间
123 每月下载量
在 rustc-holidays 中使用
36KB
868 行
holiday
一个用于定义和迭代年度重复日期和假日的 Rust 库。
创建一个新的假日
Holiday
可以是一个固定日期,如 '4月2日',或者是一个月中的第 n 个工作日,如 '4月第一个星期五'。
use holiday::*;
use chrono::{Weekday, NaiveDate};
// Regular `fixed` holiday
let holiday = Holiday::new_fixed("April 2nd", April, 2);
assert_eq!(holiday.in_year(2021), NaiveDate::from_ymd(2021, 4, 2));
assert_eq!(holiday, NaiveDate::from_ymd(2021, 4, 2));
assert_eq!(holiday, NaiveDate::from_ymd(2022, 4, 2));
// Pastover: First Friday in April, an `nth` holiday
let pastover = Holiday::new_nth("Pastover", First, Weekday::Fri, April);
assert_eq!(pastover.in_year(2021), NaiveDate::from_ymd(2021, 4, 2));
assert_eq!(pastover, NaiveDate::from_ymd(2021, 4, 2));
assert_eq!(pastover, NaiveDate::from_ymd(2022, 4, 1));
迭代假日的出现。
HolidayIter
类型是一个迭代器,用于迭代假日的出现。
lib.rs
:
holiday
一个用于定义年度重复日期和假日的库
创建一个新的假日
Holiday
可以是一个固定日期,如 '4月2日',或者是一个月中的第 n 个工作日,如 '4月第一个星期五'。
use holiday::*;
use chrono::{Weekday, NaiveDate};
// Regular `fixed` holiday
let holiday = Holiday::new_fixed("April 2nd", April, 2);
assert_eq!(holiday.in_year(2021), NaiveDate::from_ymd(2021, 4, 2));
assert_eq!(holiday, NaiveDate::from_ymd(2021, 4, 2));
assert_eq!(holiday, NaiveDate::from_ymd(2022, 4, 2));
// Pastover: First Friday in April, an `nth` holiday
let pastover = Holiday::new_nth("Pastover", First, Weekday::Fri, April);
assert_eq!(pastover.in_year(2021), NaiveDate::from_ymd(2021, 4, 2));
assert_eq!(pastover, NaiveDate::from_ymd(2021, 4, 2));
assert_eq!(pastover, NaiveDate::from_ymd(2022, 4, 1));
依赖关系
~1MB
~18K SLoC