1use super::{Holiday, NthWeek, Weekday};
2use time::macros::date;
3
4pub fn us_settlement_holidays() -> Vec<Holiday> {
5 vec![
6 Holiday::WeekDay(Weekday::Saturday),
8 Holiday::WeekDay(Weekday::Sunday),
10 Holiday::ModifiedMovableYearlyDay {
12 month: 1,
13 day: 1,
14 first: None,
15 last: None,
16 },
17 Holiday::MonthWeekday {
19 month: 1,
20 weekday: Weekday::Monday,
21 nth: NthWeek::Third,
22 first: Some(1983),
23 last: None,
24 },
25 Holiday::MonthWeekday {
27 month: 2,
28 weekday: Weekday::Monday,
29 nth: NthWeek::Third,
30 first: Some(1971),
31 last: None,
32 },
33 Holiday::ModifiedMovableYearlyDay {
34 month: 2,
35 day: 22,
36 first: None,
37 last: Some(1970),
38 },
39 Holiday::MonthWeekday {
41 month: 5,
42 weekday: Weekday::Monday,
43 nth: NthWeek::Last,
44 first: Some(1971),
45 last: None,
46 },
47 Holiday::ModifiedMovableYearlyDay {
48 month: 5,
49 day: 30,
50 first: None,
51 last: Some(1970),
52 },
53 Holiday::ModifiedMovableYearlyDay {
55 month: 6,
56 day: 19,
57 first: Some(2022),
58 last: None,
59 },
60 Holiday::ModifiedMovableYearlyDay {
62 month: 7,
63 day: 4,
64 first: None,
65 last: None,
66 },
67 Holiday::MonthWeekday {
69 month: 9,
70 weekday: Weekday::Monday,
71 nth: NthWeek::First,
72 first: None,
73 last: None,
74 },
75 Holiday::MonthWeekday {
77 month: 10,
78 weekday: Weekday::Monday,
79 nth: NthWeek::Second,
80 first: Some(1971),
81 last: None,
82 },
83 Holiday::MonthWeekday {
85 month: 10,
86 weekday: Weekday::Monday,
87 nth: NthWeek::Fourth,
88 first: None,
89 last: Some(1970),
90 },
91 Holiday::ModifiedMovableYearlyDay {
92 month: 11,
93 day: 11,
94 first: Some(1971),
95 last: Some(1977),
96 },
97 Holiday::MonthWeekday {
98 month: 10,
99 weekday: Weekday::Monday,
100 nth: NthWeek::Fourth,
101 first: Some(1978),
102 last: None,
103 },
104 Holiday::MonthWeekday {
106 month: 11,
107 weekday: Weekday::Thursday,
108 nth: NthWeek::Fourth,
109 first: None,
110 last: None,
111 },
112 Holiday::ModifiedMovableYearlyDay {
114 month: 12,
115 day: 25,
116 first: None,
117 last: None,
118 },
119 ]
120}
121
122pub fn uk_settlement_holidays() -> Vec<Holiday> {
123 vec![
124 Holiday::WeekDay(Weekday::Saturday),
126 Holiday::WeekDay(Weekday::Sunday),
128 Holiday::MovableYearlyDay {
130 month: 1,
131 day: 1,
132 first: None,
133 last: None,
134 },
135 Holiday::EasterOffset {
137 offset: -2,
138 first: None,
139 last: None,
140 },
141 Holiday::EasterOffset {
143 offset: 1,
144 first: None,
145 last: None,
146 },
147 Holiday::MonthWeekday {
149 month: 5,
150 weekday: Weekday::Monday,
151 nth: NthWeek::First,
152 first: None,
153 last: Some(1994),
154 },
155 Holiday::SingularDay(date!(1995 - 5 - 8)),
156 Holiday::MonthWeekday {
157 month: 5,
158 weekday: Weekday::Monday,
159 nth: NthWeek::First,
160 first: Some(1996),
161 last: Some(2019),
162 },
163 Holiday::SingularDay(date!(2020 - 5 - 8)),
164 Holiday::MonthWeekday {
165 month: 5,
166 weekday: Weekday::Monday,
167 nth: NthWeek::First,
168 first: Some(2021),
169 last: None,
170 },
171 Holiday::MonthWeekday {
173 month: 5,
174 weekday: Weekday::Monday,
175 nth: NthWeek::Last,
176 first: None,
177 last: Some(2001),
178 },
179 Holiday::MonthWeekday {
180 month: 5,
181 weekday: Weekday::Monday,
182 nth: NthWeek::Last,
183 first: Some(2003),
184 last: Some(2011),
185 },
186 Holiday::MonthWeekday {
187 month: 5,
188 weekday: Weekday::Monday,
189 nth: NthWeek::Last,
190 first: Some(2013),
191 last: None,
192 },
193 Holiday::MonthWeekday {
195 month: 8,
196 weekday: Weekday::Monday,
197 nth: NthWeek::Last,
198 first: None,
199 last: None,
200 },
201 Holiday::MovableYearlyDay {
203 month: 12,
204 day: 25,
205 first: None,
206 last: None,
207 },
208 Holiday::MovableYearlyDay {
210 month: 12,
211 day: 26,
212 first: None,
213 last: None,
214 },
215 Holiday::SingularDay(date!(2002 - 6 - 3)),
217 Holiday::SingularDay(date!(2002 - 6 - 4)),
219 Holiday::SingularDay(date!(2011 - 4 - 29)),
221 Holiday::SingularDay(date!(2012 - 6 - 4)),
223 Holiday::SingularDay(date!(2012 - 6 - 5)),
225 Holiday::SingularDay(date!(1999 - 12 - 31)),
227 ]
228}
229
230pub fn target_holidays() -> Vec<Holiday> {
231 vec![
232 Holiday::WeekDay(Weekday::Saturday),
234 Holiday::WeekDay(Weekday::Sunday),
236 Holiday::YearlyDay {
238 month: 1,
239 day: 1,
240 first: None,
241 last: None,
242 },
243 Holiday::EasterOffset {
245 offset: -2,
246 first: Some(2000),
247 last: None,
248 },
249 Holiday::EasterOffset {
251 offset: 1,
252 first: Some(2000),
253 last: None,
254 },
255 Holiday::YearlyDay {
257 month: 5,
258 day: 1,
259 first: Some(2000),
260 last: None,
261 },
262 Holiday::YearlyDay {
264 month: 12,
265 day: 25,
266 first: None,
267 last: None,
268 },
269 Holiday::YearlyDay {
271 month: 12,
272 day: 26,
273 first: Some(2000),
274 last: None,
275 },
276 Holiday::SingularDay(date!(1998 - 12 - 31)),
278 Holiday::SingularDay(date!(1999 - 12 - 31)),
279 Holiday::SingularDay(date!(2001 - 12 - 31)),
280 Holiday::SingularDay(date!(1995 - 5 - 8)),
281 ]
282}
283
284pub fn nok_holidays() -> Vec<Holiday> {
285 vec![
286 Holiday::WeekDay(Weekday::Saturday),
288 Holiday::WeekDay(Weekday::Sunday),
290 Holiday::EasterOffset {
292 offset: -4,
293 first: None,
294 last: None,
295 },
296 Holiday::EasterOffset {
298 offset: -3,
299 first: None,
300 last: None,
301 },
302 Holiday::EasterOffset {
304 offset: 0,
305 first: None,
306 last: None,
307 },
308 Holiday::EasterOffset {
310 offset: 38,
311 first: None,
312 last: None,
313 },
314 Holiday::EasterOffset {
316 offset: 49,
317 first: None,
318 last: None,
319 },
320 Holiday::YearlyDay {
322 month: 1,
323 day: 1,
324 first: None,
325 last: None,
326 },
327 Holiday::YearlyDay {
329 month: 5,
330 day: 1,
331 first: None,
332 last: None,
333 },
334 Holiday::YearlyDay {
336 month: 5,
337 day: 17,
338 first: None,
339 last: None,
340 },
341 Holiday::YearlyDay {
343 month: 12,
344 day: 24,
345 first: Some(2002),
346 last: None,
347 },
348 Holiday::YearlyDay {
350 month: 12,
351 day: 25,
352 first: None,
353 last: None,
354 },
355 Holiday::YearlyDay {
357 month: 12,
358 day: 26,
359 first: None,
360 last: None,
361 },
362 ]
363}