1 ! Copyright (C) 2009 Doug Coleman.
2 ! See http://factorcode.org/license.txt for BSD license.
3 USING: accessors calendar kernel math words ;
4 IN: calendar.holidays.us
8 word "us-federal" dup set-word-prop ;
12 : new-years-day ( timestamp/n -- timestamp )
13 january 1 >>day ; us-federal
15 : martin-luther-king-day ( timestamp/n -- timestamp )
16 january 3 monday-of-month ; us-federal
18 : inauguration-day ( timestamp/n -- timestamp )
19 year dup 4 mod + january 20 >>day ; us-federal
21 : washington's-birthday ( timestamp/n -- timestamp )
22 february 3 monday-of-month ; us-federal
24 ALIAS: presidents-day washington's-birthday us-federal
26 : memorial-day ( timestamp/n -- timestamp )
27 may last-monday-of-month ; us-federal
29 : independence-day ( timestamp/n -- timestamp )
30 july 4 >>day ; us-federal
32 : labor-day ( timestamp/n -- timestamp )
33 september 1 monday-of-month ; us-federal
35 : columbus-day ( timestamp/n -- timestamp )
36 october 2 monday-of-month ; us-federal
38 : veterans'-day ( timestamp/n -- timestamp )
39 november 11 >>day ; us-federal
41 : thanksgiving-day ( timestamp/n -- timestamp )
42 november 4 thursday-of-month ; us-federal
44 : christmas-day ( timestamp/n -- timestamp )
45 december 25 >>day ; us-federal
49 : belly-laugh-day ( timestamp/n -- timestamp )
52 : groundhog-day ( timestamp/n -- timestamp )
55 : lincoln's-birthday ( timestamp/n -- timestamp )
58 : valentine's-day ( timestamp/n -- timestamp )
61 : st-patrick's-day ( timestamp/n -- timestamp )
64 : ash-wednesday ( timestamp/n -- timestamp )
65 easter 46 days time- ;
67 ALIAS: first-day-of-lent ash-wednesday
69 : fat-tuesday ( timestamp/n -- timestamp )
70 ash-wednesday 1 days time- ;
72 : good-friday ( timestamp/n -- timestamp )
75 : tax-day ( timestamp/n -- timestamp )
78 : earth-day ( timestamp/n -- timestamp )
81 : administrative-professionals'-day ( timestamp/n -- timestamp )
82 april last-saturday-of-month wednesday ;
84 : cinco-de-mayo ( timestamp/n -- timestamp )
87 : mother's-day ( timestamp/n -- timestamp )
88 may 2 sunday-of-month ;
90 : armed-forces-day ( timestamp/n -- timestamp )
91 may 3 saturday-of-month ;
93 : flag-day ( timestamp/n -- timestamp )
96 : parents'-day ( timestamp/n -- timestamp )
97 july 4 sunday-of-month ;
99 : grandparents'-day ( timestamp/n -- timestamp )
100 labor-day 1 weeks time+ ;
102 : patriot-day ( timestamp/n -- timestamp )
105 : stepfamily-day ( timestamp/n -- timestamp )
108 : citizenship-day ( timestamp/n -- timestamp )
111 : boss's-day ( timestamp/n -- timestamp )
114 : sweetest-day ( timestamp/n -- timestamp )
115 october 3 saturday-of-month ;
117 : halloween ( timestamp/n -- timestamp )
120 : election-day ( timestamp/n -- timestamp )
121 november 1 monday-of-month 1 days time+ ;
123 : black-friday ( timestamp/n -- timestamp )
124 thanksgiving-day 1 days time+ ;
126 : pearl-harbor-remembrance-day ( timestamp/n -- timestamp )
129 : new-year's-eve ( timestamp/n -- timestamp )