pub enum Holiday {
WeekDay(Weekday),
YearlyDay {
month: u8,
day: u8,
first: Option<i32>,
last: Option<i32>,
},
MovableYearlyDay {
month: u8,
day: u8,
first: Option<i32>,
last: Option<i32>,
},
ModifiedMovableYearlyDay {
month: u8,
day: u8,
first: Option<i32>,
last: Option<i32>,
},
SingularDay(Date),
EasterOffset {
offset: i32,
first: Option<i32>,
last: Option<i32>,
},
MonthWeekday {
month: u8,
weekday: Weekday,
nth: NthWeek,
first: Option<i32>,
last: Option<i32>,
},
}
Variants§
WeekDay(Weekday)
Though weekends are no holidays, they need to be specified in the calendar. Weekends are assumed to be non-business days.
In most countries, weekends include Saturday (Sat
) and Sunday (Sun
). Unfortunately, there are a few exceptions.
YearlyDay
A holiday that occurs every year on the same day.
first
and last
are the first and last year this day is a holiday (inclusively).
MovableYearlyDay
Occurs every year, but is moved to next non-weekend day if it falls on a weekend.
Note that Saturday and Sunday here assumed to be weekend days, even if these days
are not defined as weekends in this calendar. If the next Monday is already a holiday,
the date will be moved to the next available business day.
first
and last
are the first and last year this day is a holiday (inclusively).
ModifiedMovableYearlyDay
Occurs every year, but is moved to previous Friday if it falls on Saturday
and to the next Monday if it falls on a Sunday.
first
and last
are the first and last year this day is a holiday (inclusively).
SingularDay(Date)
A single holiday which is valid only once in time.
EasterOffset
A holiday that is defined in relative days (e.g. -2 for Good Friday) to Easter (Sunday).
MonthWeekday
A holiday that falls on the nth (or last) weekday of a specific month, e.g. the first Monday in May.
first
and last
are the first and last year this day is a holiday (inclusively).