use super::{Holiday, NthWeek, Weekday};
use time::macros::date;
pub fn us_settlement_holidays() -> Vec<Holiday> {
vec![
Holiday::WeekDay(Weekday::Saturday),
Holiday::WeekDay(Weekday::Sunday),
Holiday::ModifiedMovableYearlyDay {
month: 1,
day: 1,
first: None,
last: None,
},
Holiday::MonthWeekday {
month: 1,
weekday: Weekday::Monday,
nth: NthWeek::Third,
first: Some(1983),
last: None,
},
Holiday::MonthWeekday {
month: 2,
weekday: Weekday::Monday,
nth: NthWeek::Third,
first: Some(1971),
last: None,
},
Holiday::ModifiedMovableYearlyDay {
month: 2,
day: 22,
first: None,
last: Some(1970),
},
Holiday::MonthWeekday {
month: 5,
weekday: Weekday::Monday,
nth: NthWeek::Last,
first: Some(1971),
last: None,
},
Holiday::ModifiedMovableYearlyDay {
month: 5,
day: 30,
first: None,
last: Some(1970),
},
Holiday::ModifiedMovableYearlyDay {
month: 6,
day: 19,
first: Some(2022),
last: None,
},
Holiday::ModifiedMovableYearlyDay {
month: 7,
day: 4,
first: None,
last: None,
},
Holiday::MonthWeekday {
month: 9,
weekday: Weekday::Monday,
nth: NthWeek::First,
first: None,
last: None,
},
Holiday::MonthWeekday {
month: 10,
weekday: Weekday::Monday,
nth: NthWeek::Second,
first: Some(1971),
last: None,
},
Holiday::MonthWeekday {
month: 10,
weekday: Weekday::Monday,
nth: NthWeek::Fourth,
first: None,
last: Some(1970),
},
Holiday::ModifiedMovableYearlyDay {
month: 11,
day: 11,
first: Some(1971),
last: Some(1977),
},
Holiday::MonthWeekday {
month: 10,
weekday: Weekday::Monday,
nth: NthWeek::Fourth,
first: Some(1978),
last: None,
},
Holiday::MonthWeekday {
month: 11,
weekday: Weekday::Thursday,
nth: NthWeek::Fourth,
first: None,
last: None,
},
Holiday::ModifiedMovableYearlyDay {
month: 12,
day: 25,
first: None,
last: None,
},
]
}
pub fn uk_settlement_holidays() -> Vec<Holiday> {
vec![
Holiday::WeekDay(Weekday::Saturday),
Holiday::WeekDay(Weekday::Sunday),
Holiday::MovableYearlyDay {
month: 1,
day: 1,
first: None,
last: None,
},
Holiday::EasterOffset {
offset: -2,
first: None,
last: None,
},
Holiday::EasterOffset {
offset: 1,
first: None,
last: None,
},
Holiday::MonthWeekday {
month: 5,
weekday: Weekday::Monday,
nth: NthWeek::First,
first: None,
last: Some(1994),
},
Holiday::SingularDay(date!(1995 - 5 - 8)),
Holiday::MonthWeekday {
month: 5,
weekday: Weekday::Monday,
nth: NthWeek::First,
first: Some(1996),
last: Some(2019),
},
Holiday::SingularDay(date!(2020 - 5 - 8)),
Holiday::MonthWeekday {
month: 5,
weekday: Weekday::Monday,
nth: NthWeek::First,
first: Some(2021),
last: None,
},
Holiday::MonthWeekday {
month: 5,
weekday: Weekday::Monday,
nth: NthWeek::Last,
first: None,
last: Some(2001),
},
Holiday::MonthWeekday {
month: 5,
weekday: Weekday::Monday,
nth: NthWeek::Last,
first: Some(2003),
last: Some(2011),
},
Holiday::MonthWeekday {
month: 5,
weekday: Weekday::Monday,
nth: NthWeek::Last,
first: Some(2013),
last: None,
},
Holiday::MonthWeekday {
month: 8,
weekday: Weekday::Monday,
nth: NthWeek::Last,
first: None,
last: None,
},
Holiday::MovableYearlyDay {
month: 12,
day: 25,
first: None,
last: None,
},
Holiday::MovableYearlyDay {
month: 12,
day: 26,
first: None,
last: None,
},
Holiday::SingularDay(date!(2002 - 6 - 3)),
Holiday::SingularDay(date!(2002 - 6 - 4)),
Holiday::SingularDay(date!(2011 - 4 - 29)),
Holiday::SingularDay(date!(2012 - 6 - 4)),
Holiday::SingularDay(date!(2012 - 6 - 5)),
Holiday::SingularDay(date!(1999 - 12 - 31)),
]
}
pub fn target_holidays() -> Vec<Holiday> {
vec![
Holiday::WeekDay(Weekday::Saturday),
Holiday::WeekDay(Weekday::Sunday),
Holiday::YearlyDay {
month: 1,
day: 1,
first: None,
last: None,
},
Holiday::EasterOffset {
offset: -2,
first: Some(2000),
last: None,
},
Holiday::EasterOffset {
offset: 1,
first: Some(2000),
last: None,
},
Holiday::YearlyDay {
month: 5,
day: 1,
first: Some(2000),
last: None,
},
Holiday::YearlyDay {
month: 12,
day: 25,
first: None,
last: None,
},
Holiday::YearlyDay {
month: 12,
day: 26,
first: Some(2000),
last: None,
},
Holiday::SingularDay(date!(1998 - 12 - 31)),
Holiday::SingularDay(date!(1999 - 12 - 31)),
Holiday::SingularDay(date!(2001 - 12 - 31)),
Holiday::SingularDay(date!(1995 - 5 - 8)),
]
}
pub fn nok_holidays() -> Vec<Holiday> {
vec![
Holiday::WeekDay(Weekday::Saturday),
Holiday::WeekDay(Weekday::Sunday),
Holiday::EasterOffset {
offset: -4,
first: None,
last: None,
},
Holiday::EasterOffset {
offset: -3,
first: None,
last: None,
},
Holiday::EasterOffset {
offset: 0,
first: None,
last: None,
},
Holiday::EasterOffset {
offset: 38,
first: None,
last: None,
},
Holiday::EasterOffset {
offset: 49,
first: None,
last: None,
},
Holiday::YearlyDay {
month: 1,
day: 1,
first: None,
last: None,
},
Holiday::YearlyDay {
month: 5,
day: 1,
first: None,
last: None,
},
Holiday::YearlyDay {
month: 5,
day: 17,
first: None,
last: None,
},
Holiday::YearlyDay {
month: 12,
day: 24,
first: Some(2002),
last: None,
},
Holiday::YearlyDay {
month: 12,
day: 25,
first: None,
last: None,
},
Holiday::YearlyDay {
month: 12,
day: 26,
first: None,
last: None,
},
]
}