Crates.io | holiday |
lib.rs | holiday |
version | 0.1.2 |
source | src |
created_at | 2021-01-22 05:24:15.849958 |
updated_at | 2022-11-26 04:08:34.148477 |
description | A rust library for defining and iterating over annually repeating dates and holidays. |
homepage | https://gitlab.com/ryanobeirne/holiday |
repository | https://gitlab.com/ryanobeirne/holiday.git |
max_upload_size | |
id | 345194 |
size | 43,040 |
A rust library for defining and iterating over annually repeating dates and holidays.
A Holiday
can be either a fixed date like 'April 2nd' or an nth weekday of a month, like '1st Friday in April'.
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));
The HolidayIter
type is an iterator over the occurrences of a Holiday.