nzholidays 0.4.0 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 135a3d95439494843b22cb324de71c80b921c1b1a6e83cfc9d8e9de08e522f02
4
- data.tar.gz: 50cd2f1c90da2bb63e8426162f370acc6b83a38ed327db80cb3db22f55a329ad
3
+ metadata.gz: 235001adc9d6779a11e4ea2be66120298297f3dbe790d5e811a165f722c688da
4
+ data.tar.gz: 70d882ac257798df779a762db233397afc8935e567eac7dad9fa2a053ee6891a
5
5
  SHA512:
6
- metadata.gz: 3f9bff62d06be98da72368e8d9d786f28759a3b2ccf1dacd1c4a0a3c5a8d8190e16a817c987c0e63a767f15506076986473de49c73ed94c3aa8302894d6d7245
7
- data.tar.gz: d1b30d1f137d9eee94b1e994ec43798d2b4470dd9c81664502edd0eba5d3603cbc2775102fb612c6af6375df12944fe322424758f3ce90707519d0084c3f4d6d
6
+ metadata.gz: c9566f1fb48791abe92ef81f8b992336d271eb1df41d25817928496a659ff29c1d4f036cc8d93208b1fc2d3e4104e35df8235f242209062c209703ec87d338d3
7
+ data.tar.gz: f19dcb70eef764eee902502c801d8f89633c3813aae28fc0dd3540c5b70d1ca1412f3bf528386e7b38c005fb1639353cc8b6875d5657481a6db492edd6a1bde9
data/Rakefile CHANGED
@@ -1,16 +1,40 @@
1
1
  require "bundler/gem_tasks"
2
2
  require "rspec/core/rake_task"
3
+ require 'bundler/setup'
3
4
 
4
5
  RSpec::Core::RakeTask.new(:spec)
5
6
 
7
+ SOURCE_URL = 'http://apps.employment.govt.nz/ical/public-holidays-all.ics'
8
+ FILE = 'public-holidays-all.ics'
9
+
6
10
  task :default => [:generate, :spec]
7
11
 
8
- task :generate do
12
+ task :download do
13
+ require 'open-uri'
14
+ require 'net/http'
15
+
16
+ puts "Downloading #{SOURCE_URL}"
17
+
18
+ # Download the ICS file
19
+ open(FILE, 'wb') do |file|
20
+ file << open(SOURCE_URL).read
21
+ end
22
+ end
23
+
24
+ task :generate => [:download] do
9
25
 
10
26
  require 'erb'
27
+ require 'icalendar'
28
+ require 'tzinfo'
29
+ require 'nzholidays/nztime'
30
+
31
+ cal_file = File.open(FILE)
32
+ calendars = Icalendar::Calendar.parse(cal_file)
11
33
 
12
34
  template = 'lib/nzholidays/template.erb'
13
- output = 'lib/nzholidays.rb'
35
+ output = 'lib/nzholidays/calendar.rb'
36
+
37
+ puts "Generating #{output}"
14
38
 
15
39
  erb = ERB.new(File.read(template), nil, '-')
16
40
  erb.filename = template
data/lib/nzholidays.rb CHANGED
@@ -1,357 +1,5 @@
1
- # Auto-generated at 2018-10-02 16:57:02 +1300
2
- # Do not edit - see template lib/nzholidays/template.erb
3
- # To regenerate, `bundle exec rake generate`
4
-
5
- require "nzholidays/version"
6
1
  require 'time'
7
2
  require 'tzinfo'
8
-
9
- module Nzholidays
10
-
11
- NZ_TIME_ZONE = TZInfo::Timezone.get('Pacific/Auckland')
12
-
13
- def self.nz_time(year, month, day)
14
-
15
- # Holiday starts at the beginning of the given day
16
- time = ::Time.new(year, month, day, 0, 0, 0)
17
-
18
- # Find the UTC total offset (daylight savings or standard time) for time
19
-
20
- # note period_for_local ignores timezone info in the time object
21
- # http://www.rubydoc.info/gems/tzinfo/TZInfo/Timezone#period_for_local-instance_method
22
-
23
- utc_total_offset = NZ_TIME_ZONE.period_for_local(time).utc_total_offset
24
-
25
- time.getlocal(utc_total_offset)
26
- end
27
-
28
- HOLIDAYS = [
29
- nz_time( 2009, 4, 10 ), # Good Friday
30
- nz_time( 2009, 4, 13 ), # Easter Monday
31
- nz_time( 2009, 2, 6 ), # Waitangi Day
32
- nz_time( 2009, 4, 25 ), # ANZAC Day
33
- nz_time( 2009, 6, 1 ), # Queen's Birthday
34
- nz_time( 2009, 10, 26 ), # Labour Day
35
- nz_time( 2009, 12, 26 ), # Boxing Day (Public Holiday for employees who would normally work on Saturday)
36
- nz_time( 2009, 12, 25 ), # Christmas Day
37
- nz_time( 2009, 1, 2 ), # Day after New Year's Day
38
- nz_time( 2009, 12, 28 ), # Boxing Day Public Holiday for employees who would not normally work on Saturday
39
- nz_time( 2010, 1, 1 ), # New Year's Day
40
- nz_time( 2010, 4, 5 ), # Easter Monday
41
- nz_time( 2010, 6, 7 ), # Queen's Birthday
42
- nz_time( 2008, 12, 26 ), # Boxing Day
43
- nz_time( 2008, 12, 25 ), # Christmas Day
44
- nz_time( 2009, 1, 1 ), # New Year's Day
45
- nz_time( 2010, 12, 25 ), # Christmas Day (Public Holiday for employees who would normally work on Saturday)
46
- nz_time( 2010, 12, 28 ), # Boxing Day Public Holiday for employees who would not normally work on Sunday
47
- nz_time( 2010, 12, 26 ), # Boxing Day (Public Holiday for employees who would normally work on Sunday)
48
- nz_time( 2011, 1, 3 ), # New Year's Day Public Holiday for employees who would not normally work on Saturday
49
- nz_time( 2011, 4, 22 ), # Good Friday
50
- nz_time( 2011, 1, 4 ), # Day after New Year's Day Public Holiday for employees who would not normally work on Sunday
51
- nz_time( 2011, 10, 24 ), # Labour Day
52
- nz_time( 2011, 4, 25 ), # Easter Monday
53
- nz_time( 2011, 6, 6 ), # Queen's Birthday
54
- nz_time( 2011, 12, 25 ), # Christmas Day (Public Holiday for employees who would normally work on Sunday)
55
- nz_time( 2011, 12, 27 ), # Christmas Day (Public Holiday for employees who would not normally work on Sunday)
56
- nz_time( 2011, 12, 26 ), # Boxing Day
57
- nz_time( 2012, 1, 3 ), # New Year's Day Public Holiday for employees who would not normally work on Sunday
58
- nz_time( 2010, 4, 2 ), # Good Friday
59
- nz_time( 2010, 10, 25 ), # Labour Day
60
- nz_time( 2010, 12, 27 ), # Christmas Day Public Holiday for employees who would not normally work on Saturday
61
- nz_time( 2012, 4, 9 ), # Easter Monday
62
- nz_time( 2012, 10, 22 ), # Labour Day
63
- nz_time( 2012, 6, 4 ), # Queen's Birthday
64
- nz_time( 2012, 12, 26 ), # Boxing Day
65
- nz_time( 2012, 12, 25 ), # Christmas Day
66
- nz_time( 2013, 1, 1 ), # New Year's Day
67
- nz_time( 2013, 1, 2 ), # Day after New Year's Day
68
- nz_time( 2013, 4, 1 ), # Easter Monday
69
- nz_time( 2013, 3, 29 ), # Good Friday
70
- nz_time( 2013, 10, 28 ), # Labour Day
71
- nz_time( 2013, 6, 3 ), # Queen's Birthday
72
- nz_time( 2013, 12, 25 ), # Christmas Day
73
- nz_time( 2013, 12, 26 ), # Boxing Day
74
- nz_time( 2012, 1, 1 ), # New Year's Day (Public Holiday for employees who would normally work on Sunday)
75
- nz_time( 2012, 4, 6 ), # Good Friday
76
- nz_time( 2012, 1, 2 ), # Day after New Year's Day
77
- nz_time( 2014, 4, 18 ), # Good Friday
78
- nz_time( 2014, 1, 2 ), # Day after New Year's Day
79
- nz_time( 2014, 1, 1 ), # New Year's Day
80
- nz_time( 2014, 4, 21 ), # Easter Monday
81
- nz_time( 2010, 1, 4 ), # Day after New Year's Day Public Holiday for employees who would not normally work on Saturday
82
- nz_time( 2010, 4, 25 ), # ANZAC Day
83
- nz_time( 2010, 2, 6 ), # Waitangi Day
84
- nz_time( 2011, 4, 25 ), # ANZAC Day
85
- nz_time( 2011, 2, 6 ), # Waitangi Day
86
- nz_time( 2014, 4, 25 ), # ANZAC Day
87
- nz_time( 2013, 4, 25 ), # ANZAC Day
88
- nz_time( 2014, 2, 6 ), # Waitangi Day
89
- nz_time( 2010, 1, 2 ), # Day after New Year's Day (Public Holiday for employees who would normally work on Saturday)
90
- nz_time( 2011, 1, 1 ), # New Year's Day (Public Holiday for employees who would normally work on Saturday)
91
- nz_time( 2011, 1, 2 ), # Day after New Year's Day (Public Holiday for employees who would normally work on Sunday)
92
- nz_time( 2012, 4, 25 ), # ANZAC Day
93
- nz_time( 2012, 2, 6 ), # Waitangi Day
94
- nz_time( 2013, 2, 6 ), # Waitangi Day
95
- nz_time( 2014, 10, 27 ), # Labour Day
96
- nz_time( 2014, 12, 25 ), # Christmas Day
97
- nz_time( 2014, 6, 2 ), # Queen's Birthday
98
- nz_time( 2015, 1, 1 ), # New Year's Day
99
- nz_time( 2015, 4, 3 ), # Good Friday
100
- nz_time( 2014, 12, 26 ), # Boxing Day
101
- nz_time( 2015, 1, 2 ), # Day after New Year's Day
102
- nz_time( 2015, 4, 6 ), # Easter Monday
103
- nz_time( 2015, 12, 25 ), # Christmas Day
104
- nz_time( 2015, 6, 1 ), # Queen's Birthday
105
- nz_time( 2015, 10, 26 ), # Labour Day
106
- nz_time( 2015, 12, 28 ), # Boxing Day (Public Holiday for employees who would not normally work on Saturday)
107
- nz_time( 2016, 3, 25 ), # Good Friday
108
- nz_time( 2016, 1, 1 ), # New Year's Day
109
- nz_time( 2016, 1, 4 ), # Day after New Year's Day (Public Holiday for employees who would not normally work on Saturday)
110
- nz_time( 2016, 3, 28 ), # Easter Monday
111
- nz_time( 2016, 12, 25 ), # Christmas Day (Public Holiday for employees who would normally work on Sunday)
112
- nz_time( 2016, 6, 6 ), # Queen's Birthday
113
- nz_time( 2016, 10, 24 ), # Labour Day
114
- nz_time( 2016, 12, 26 ), # Boxing Day
115
- nz_time( 2016, 12, 27 ), # Christmas Day (Public Holiday for employees who would not normally work on Sunday)
116
- nz_time( 2015, 2, 6 ), # Waitangi Day
117
- nz_time( 2015, 4, 25 ), # ANZAC Day
118
- nz_time( 2016, 2, 6 ), # Waitangi Day
119
- nz_time( 2016, 4, 25 ), # ANZAC Day
120
- nz_time( 2016, 1, 2 ), # Day after New Year's Day (Public Holiday for employees who would normally work on Saturday)
121
- nz_time( 2015, 12, 26 ), # Boxing Day (Public Holiday for employees who would normally work on Saturday)
122
- nz_time( 2015, 4, 27 ), # ANZAC Day (Mondayised)
123
- nz_time( 2016, 2, 8 ), # Waitangi Day (Mondayised)
124
- nz_time( 2017, 1, 1 ), # New Year's Day (Public Holiday for employees who would normally work on Sunday)
125
- nz_time( 2017, 1, 2 ), # Day after New Year's Day
126
- nz_time( 2017, 1, 3 ), # New Year's Day (Public Holiday for employees who would not normally work on Sunday)
127
- nz_time( 2017, 2, 6 ), # Waitangi Day
128
- nz_time( 2017, 4, 14 ), # Good Friday
129
- nz_time( 2017, 4, 17 ), # Easter Monday
130
- nz_time( 2017, 6, 5 ), # Queen's Birthday
131
- nz_time( 2017, 4, 25 ), # ANZAC Day
132
- nz_time( 2017, 10, 23 ), # Labour Day
133
- nz_time( 2017, 12, 25 ), # Christmas Day
134
- nz_time( 2017, 12, 26 ), # Boxing Day
135
- nz_time( 2021, 12, 28 ), # Boxing Day (Public Holiday for employees who would not normally work on Sunday)
136
- nz_time( 2021, 12, 26 ), # Boxing Day (Public Holiday for employees who would normally work on Sunday)
137
- nz_time( 2021, 12, 27 ), # Christmas Day (Public Holiday for employees who would not normally work on Saturday)
138
- nz_time( 2021, 12, 25 ), # Christmas Day (Public Holiday for employees who would normally work on Saturday)
139
- nz_time( 2021, 10, 25 ), # Labour Day
140
- nz_time( 2021, 6, 7 ), # Queen's Birthday
141
- nz_time( 2021, 4, 26 ), # ANZAC Day (Mondayised)
142
- nz_time( 2021, 4, 25 ), # ANZAC Day
143
- nz_time( 2021, 4, 5 ), # Easter Monday
144
- nz_time( 2021, 4, 2 ), # Good Friday
145
- nz_time( 2021, 2, 8 ), # Waitangi Day (Mondayised)
146
- nz_time( 2021, 2, 6 ), # Waitangi Day
147
- nz_time( 2021, 1, 4 ), # Day after New Year's Day (Public Holiday for employees who would not normally work on Saturday)
148
- nz_time( 2021, 1, 2 ), # Day after New Year's Day (Public Holiday for employees who would normally work on Saturday)
149
- nz_time( 2021, 1, 1 ), # New Year's Day
150
- nz_time( 2020, 12, 28 ), # Boxing Day (Public Holiday for employees who would not normally work on Saturday)
151
- nz_time( 2020, 12, 26 ), # Boxing Day (Public Holiday for employees who would normally work on Saturday)
152
- nz_time( 2020, 12, 25 ), # Christmas Day
153
- nz_time( 2020, 10, 26 ), # Labour Day
154
- nz_time( 2020, 6, 1 ), # Queen's Birthday
155
- nz_time( 2020, 4, 27 ), # ANZAC Day (Mondayised)
156
- nz_time( 2020, 4, 25 ), # ANZAC Day
157
- nz_time( 2020, 4, 13 ), # Easter Monday
158
- nz_time( 2020, 4, 10 ), # Good Friday
159
- nz_time( 2020, 2, 6 ), # Waitangi Day
160
- nz_time( 2020, 1, 2 ), # Day after New Year's Day
161
- nz_time( 2020, 1, 1 ), # New Year's Day
162
- nz_time( 2019, 12, 26 ), # Boxing Day
163
- nz_time( 2019, 12, 25 ), # Christmas Day
164
- nz_time( 2019, 10, 28 ), # Labour Day
165
- nz_time( 2019, 6, 3 ), # Queen's Birthday
166
- nz_time( 2019, 4, 25 ), # ANZAC Day
167
- nz_time( 2019, 4, 22 ), # Easter Monday
168
- nz_time( 2019, 4, 19 ), # Good Friday
169
- nz_time( 2019, 2, 6 ), # Waitangi Day
170
- nz_time( 2019, 1, 2 ), # Day after New Year's Day
171
- nz_time( 2019, 1, 1 ), # New Year's Day
172
- nz_time( 2018, 12, 26 ), # Boxing Day
173
- nz_time( 2018, 12, 25 ), # Christmas Day
174
- nz_time( 2018, 10, 22 ), # Labour Day
175
- nz_time( 2018, 6, 4 ), # Queen's Birthday
176
- nz_time( 2018, 4, 25 ), # ANZAC Day
177
- nz_time( 2018, 4, 2 ), # Easter Monday
178
- nz_time( 2018, 3, 30 ), # Good Friday
179
- nz_time( 2018, 2, 6 ), # Waitangi Day
180
- nz_time( 2018, 1, 2 ), # Day after New Year's Day
181
- nz_time( 2018, 1, 1 ), # New Year's Day
182
- ]
183
-
184
- ANNIVERSARIES = [
185
- nz_time( 2008, 12, 1 ), # Westland Anniversary Day
186
- nz_time( 2008, 12, 1 ), # Chatham Islands Anniversary Day
187
- nz_time( 2009, 1, 26 ), # Auckland Anniversary Day
188
- nz_time( 2009, 1, 19 ), # Wellington Anniversary Day
189
- nz_time( 2009, 2, 2 ), # Nelson Anniversary Day
190
- nz_time( 2009, 1, 19 ), # Southland Anniversary Day
191
- nz_time( 2009, 3, 9 ), # Taranaki Anniversary Day
192
- nz_time( 2009, 9, 28 ), # South Canterbury Anniversary Day
193
- nz_time( 2009, 11, 13 ), # Canterbury Anniversary Day
194
- nz_time( 2009, 11, 30 ), # Chatham Islands Anniversary Day
195
- nz_time( 2010, 1, 25 ), # Wellington Anniversary Day
196
- nz_time( 2009, 11, 30 ), # Westland Anniversary Day
197
- nz_time( 2010, 2, 1 ), # Auckland Anniversary Day
198
- nz_time( 2010, 3, 8 ), # Taranaki Anniversary Day
199
- nz_time( 2010, 1, 18 ), # Southland Anniversary Day
200
- nz_time( 2010, 2, 1 ), # Nelson Anniversary Day
201
- nz_time( 2010, 9, 27 ), # South Canterbury Anniversary Day
202
- nz_time( 2010, 3, 22 ), # Otago Anniversary Day
203
- nz_time( 2010, 11, 1 ), # Marlborough Anniversary Day
204
- nz_time( 2010, 10, 22 ), # Hawkes' Bay Anniversary Day
205
- nz_time( 2009, 3, 23 ), # Otago Anniversary Day
206
- nz_time( 2009, 11, 2 ), # Marlborough Anniversary Day
207
- nz_time( 2009, 10, 23 ), # Hawkes' Bay Anniversary Day
208
- nz_time( 2010, 11, 29 ), # Chatham Islands Anniversary Day
209
- nz_time( 2011, 1, 31 ), # Nelson Anniversary Day
210
- nz_time( 2011, 1, 17 ), # Southland Anniversary Day
211
- nz_time( 2011, 1, 24 ), # Wellington Anniversary Day
212
- nz_time( 2011, 3, 14 ), # Taranaki Anniversary Day
213
- nz_time( 2011, 9, 26 ), # South Canterbury Anniversary Day
214
- nz_time( 2011, 3, 21 ), # Otago Anniversary Day
215
- nz_time( 2011, 10, 21 ), # Hawkes' Bay Anniversary Day
216
- nz_time( 2011, 11, 11 ), # Canterbury Anniversary Day
217
- nz_time( 2011, 10, 31 ), # Marlborough Anniversary Day
218
- nz_time( 2011, 12, 5 ), # Westland Anniversary Day
219
- nz_time( 2011, 11, 28 ), # Chatham Islands Anniversary Day
220
- nz_time( 2012, 1, 30 ), # Auckland Anniversary Day
221
- nz_time( 2010, 11, 29 ), # Westland Anniversary Day
222
- nz_time( 2011, 1, 31 ), # Auckland Anniversary Day
223
- nz_time( 2010, 11, 12 ), # Canterbury Anniversary Day
224
- nz_time( 2012, 3, 12 ), # Taranaki Anniversary Day
225
- nz_time( 2012, 3, 26 ), # Otago Anniversary Day
226
- nz_time( 2012, 9, 24 ), # South Canterbury Anniversary Day
227
- nz_time( 2012, 10, 19 ), # Hawkes' Bay Anniversary Day
228
- nz_time( 2012, 11, 16 ), # Canterbury Anniversary Day
229
- nz_time( 2012, 10, 29 ), # Marlborough Anniversary Day
230
- nz_time( 2013, 1, 28 ), # Auckland Anniversary Day
231
- nz_time( 2012, 12, 3 ), # Westland Anniversary Day
232
- nz_time( 2012, 12, 3 ), # Chatham Islands Anniversary Day
233
- nz_time( 2013, 1, 21 ), # Wellington Anniversary Day
234
- nz_time( 2013, 1, 21 ), # Southland Anniversary Day
235
- nz_time( 2013, 2, 4 ), # Nelson Anniversary Day
236
- nz_time( 2013, 3, 25 ), # Otago Anniversary Day
237
- nz_time( 2012, 1, 23 ), # Wellington Anniversary Day
238
- nz_time( 2012, 1, 16 ), # Southland Anniversary Day
239
- nz_time( 2012, 1, 30 ), # Nelson Anniversary Day
240
- nz_time( 2013, 11, 4 ), # Marlborough Anniversary Day
241
- nz_time( 2013, 11, 15 ), # Canterbury Anniversary Day
242
- nz_time( 2014, 1, 27 ), # Auckland Anniversary Day
243
- nz_time( 2013, 12, 2 ), # Westland Anniversary Day
244
- nz_time( 2013, 12, 2 ), # Chatham Islands Anniversary Day
245
- nz_time( 2014, 1, 20 ), # Wellington Anniversary Day
246
- nz_time( 2014, 4, 22 ), # Southland Anniversary Day
247
- nz_time( 2014, 2, 3 ), # Nelson Anniversary Day
248
- nz_time( 2014, 3, 10 ), # Taranaki Anniversary Day
249
- nz_time( 2014, 3, 24 ), # Otago Anniversary Day
250
- nz_time( 2013, 3, 11 ), # Taranaki Anniversary Day
251
- nz_time( 2013, 9, 23 ), # South Canterbury Anniversary Day
252
- nz_time( 2013, 10, 25 ), # Hawkes' Bay Anniversary Day
253
- nz_time( 2014, 10, 24 ), # Hawkes' Bay Anniversary Day
254
- nz_time( 2014, 11, 14 ), # Canterbury Anniversary Day
255
- nz_time( 2014, 9, 22 ), # South Canterbury Anniversary Day
256
- nz_time( 2014, 11, 3 ), # Marlborough Anniversary Day
257
- nz_time( 2014, 12, 1 ), # Westland Anniversary Day
258
- nz_time( 2014, 12, 1 ), # Chatham Islands Anniversary Day
259
- nz_time( 2015, 1, 19 ), # Wellington Anniversary Day
260
- nz_time( 2015, 4, 7 ), # Southland Anniversary Day
261
- nz_time( 2015, 1, 26 ), # Auckland Anniversary Day
262
- nz_time( 2015, 3, 23 ), # Otago Anniversary Day
263
- nz_time( 2015, 2, 2 ), # Nelson Anniversary Day
264
- nz_time( 2015, 3, 9 ), # Taranaki Anniversary Day
265
- nz_time( 2015, 10, 23 ), # Hawkes' Bay Anniversary Day
266
- nz_time( 2015, 9, 28 ), # South Canterbury Anniversary Day
267
- nz_time( 2015, 11, 2 ), # Marlborough Anniversary Day
268
- nz_time( 2015, 11, 30 ), # Westland Anniversary Day
269
- nz_time( 2015, 11, 13 ), # Canterbury Anniversary Day
270
- nz_time( 2016, 1, 25 ), # Wellington Anniversary Day
271
- nz_time( 2016, 3, 29 ), # Southland Anniversary Day
272
- nz_time( 2015, 11, 30 ), # Chatham Islands Anniversary Day
273
- nz_time( 2016, 2, 1 ), # Nelson Anniversary Day
274
- nz_time( 2016, 2, 1 ), # Auckland Anniversary Day
275
- nz_time( 2016, 3, 21 ), # Otago Anniversary Day
276
- nz_time( 2016, 3, 14 ), # Taranaki Anniversary Day
277
- nz_time( 2016, 9, 26 ), # South Canterbury Anniversary Day
278
- nz_time( 2016, 10, 21 ), # Hawkes' Bay Anniversary Day
279
- nz_time( 2016, 10, 31 ), # Marlborough Anniversary Day
280
- nz_time( 2016, 11, 11 ), # Canterbury Anniversary Day
281
- nz_time( 2016, 11, 28 ), # Westland Anniversary Day
282
- nz_time( 2016, 11, 28 ), # Chatham Islands Anniversary Day
283
- nz_time( 2017, 1, 23 ), # Wellington Anniversary
284
- nz_time( 2017, 1, 30 ), # Auckland Anniversary
285
- nz_time( 2017, 1, 30 ), # Nelson Anniversary
286
- nz_time( 2017, 3, 13 ), # Taranaki Anniversary
287
- nz_time( 2017, 3, 20 ), # Otago Anniversary
288
- nz_time( 2017, 4, 18 ), # Southland Anniversary
289
- nz_time( 2017, 9, 25 ), # Canterbury (South) Anniversary
290
- nz_time( 2017, 10, 20 ), # Hawke's Bay Anniversary
291
- nz_time( 2017, 10, 30 ), # Marlborough Anniversary
292
- nz_time( 2017, 11, 27 ), # Chatham Islands Anniversary
293
- nz_time( 2017, 11, 17 ), # Canterbury Anniversary
294
- nz_time( 2017, 12, 4 ), # Westland Anniversary
295
- nz_time( 2021, 11, 29 ), # Chatham Islands Anniversary
296
- nz_time( 2021, 11, 29 ), # Westland Anniversary
297
- nz_time( 2021, 11, 12 ), # Canterbury Anniversary
298
- nz_time( 2021, 11, 1 ), # Marlborough Anniversary
299
- nz_time( 2021, 10, 22 ), # Hawke's Bay Anniversary
300
- nz_time( 2021, 9, 27 ), # Canterbury (South) Anniversary
301
- nz_time( 2021, 4, 6 ), # Southland Anniversary
302
- nz_time( 2021, 3, 22 ), # Otago Anniversary
303
- nz_time( 2021, 3, 8 ), # Taranaki Anniversary
304
- nz_time( 2021, 2, 1 ), # Nelson Anniversary
305
- nz_time( 2021, 2, 1 ), # Auckland Anniversary
306
- nz_time( 2021, 1, 25 ), # Wellington Anniversary
307
- nz_time( 2020, 11, 30 ), # Chatham Islands Anniversary
308
- nz_time( 2020, 11, 30 ), # Westland Anniversary
309
- nz_time( 2020, 11, 13 ), # Canterbury Anniversary
310
- nz_time( 2020, 11, 2 ), # Marlborough Anniversary
311
- nz_time( 2020, 10, 23 ), # Hawke's Bay Anniversary
312
- nz_time( 2020, 9, 28 ), # Canterbury (South) Anniversary
313
- nz_time( 2020, 4, 14 ), # Southland Anniversary
314
- nz_time( 2020, 3, 23 ), # Otago Anniversary
315
- nz_time( 2020, 3, 9 ), # Taranaki Anniversary
316
- nz_time( 2020, 2, 3 ), # Nelson Anniversary
317
- nz_time( 2020, 1, 27 ), # Auckland Anniversary
318
- nz_time( 2020, 1, 20 ), # Wellington Anniversary
319
- nz_time( 2019, 12, 2 ), # Chatham Islands Anniversary
320
- nz_time( 2019, 12, 2 ), # Westland Anniversary
321
- nz_time( 2019, 11, 15 ), # Canterbury Anniversary
322
- nz_time( 2019, 11, 4 ), # Marlborough Anniversary
323
- nz_time( 2019, 10, 25 ), # Hawke's Bay Anniversary
324
- nz_time( 2019, 9, 23 ), # Canterbury (South) Anniversary
325
- nz_time( 2019, 4, 23 ), # Southland Anniversary
326
- nz_time( 2019, 3, 25 ), # Otago Anniversary
327
- nz_time( 2019, 3, 11 ), # Taranaki Anniversary
328
- nz_time( 2019, 2, 4 ), # Nelson Anniversary
329
- nz_time( 2019, 1, 28 ), # Auckland Anniversary
330
- nz_time( 2019, 1, 21 ), # Wellington Anniversary
331
- nz_time( 2018, 12, 3 ), # Chatham Islands Anniversary
332
- nz_time( 2018, 12, 3 ), # Westland Anniversary
333
- nz_time( 2018, 11, 16 ), # Canterbury Anniversary
334
- nz_time( 2018, 10, 29 ), # Marlborough Anniversary
335
- nz_time( 2018, 10, 19 ), # Hawke's Bay Anniversary
336
- nz_time( 2018, 9, 24 ), # Canterbury (South) Anniversary
337
- nz_time( 2018, 4, 3 ), # Southland Anniversary
338
- nz_time( 2018, 3, 26 ), # Otago Anniversary
339
- nz_time( 2018, 3, 12 ), # Taranaki Anniversary
340
- nz_time( 2018, 1, 29 ), # Nelson Anniversary
341
- nz_time( 2018, 1, 29 ), # Auckland Anniversary
342
- nz_time( 2018, 1, 22 ), # Wellington Anniversary
343
- ]
344
-
345
- def self.nz_public_holiday?(query)
346
- !!HOLIDAYS.find do |hol|
347
- hol.year == query.year && hol.month == query.month && hol.day == query.day
348
- end
349
- end
350
-
351
- def self.nz_anniversary?(query)
352
- !!ANNIVERSARIES.find do |hol|
353
- hol.year == query.year && hol.month == query.month && hol.day == query.day
354
- end
355
- end
356
-
357
- end
3
+ require 'nzholidays/version'
4
+ require 'nzholidays/nztime'
5
+ require 'nzholidays/calendar'
@@ -0,0 +1,324 @@
1
+ # Auto-generated at 2018-10-03 15:10:33 +1300
2
+ # Do not edit - see template lib/nzholidays/template.erb
3
+ # To regenerate, `bundle exec rake generate`
4
+
5
+ module Nzholidays
6
+
7
+ HOLIDAYS = [
8
+ Time.new(2008, 12, 25, 0, 0, 0, 46800), # Christmas Day
9
+ Time.new(2008, 12, 26, 0, 0, 0, 46800), # Boxing Day
10
+ Time.new(2009, 1, 1, 0, 0, 0, 46800), # New Year's Day
11
+ Time.new(2009, 1, 2, 0, 0, 0, 46800), # Day after New Year's Day
12
+ Time.new(2009, 2, 6, 0, 0, 0, 46800), # Waitangi Day
13
+ Time.new(2009, 4, 10, 0, 0, 0, 43200), # Good Friday
14
+ Time.new(2009, 4, 13, 0, 0, 0, 43200), # Easter Monday
15
+ Time.new(2009, 4, 25, 0, 0, 0, 43200), # ANZAC Day
16
+ Time.new(2009, 6, 1, 0, 0, 0, 43200), # Queen's Birthday
17
+ Time.new(2009, 10, 26, 0, 0, 0, 46800), # Labour Day
18
+ Time.new(2009, 12, 25, 0, 0, 0, 46800), # Christmas Day
19
+ Time.new(2009, 12, 26, 0, 0, 0, 46800), # Boxing Day (Public Holiday for employees who would normally work on Saturday)
20
+ Time.new(2009, 12, 28, 0, 0, 0, 46800), # Boxing Day Public Holiday for employees who would not normally work on Saturday
21
+ Time.new(2010, 1, 1, 0, 0, 0, 46800), # New Year's Day
22
+ Time.new(2010, 1, 2, 0, 0, 0, 46800), # Day after New Year's Day (Public Holiday for employees who would normally work on Saturday)
23
+ Time.new(2010, 1, 4, 0, 0, 0, 46800), # Day after New Year's Day Public Holiday for employees who would not normally work on Saturday
24
+ Time.new(2010, 2, 6, 0, 0, 0, 46800), # Waitangi Day
25
+ Time.new(2010, 4, 2, 0, 0, 0, 46800), # Good Friday
26
+ Time.new(2010, 4, 5, 0, 0, 0, 43200), # Easter Monday
27
+ Time.new(2010, 4, 25, 0, 0, 0, 43200), # ANZAC Day
28
+ Time.new(2010, 6, 7, 0, 0, 0, 43200), # Queen's Birthday
29
+ Time.new(2010, 10, 25, 0, 0, 0, 46800), # Labour Day
30
+ Time.new(2010, 12, 25, 0, 0, 0, 46800), # Christmas Day (Public Holiday for employees who would normally work on Saturday)
31
+ Time.new(2010, 12, 26, 0, 0, 0, 46800), # Boxing Day (Public Holiday for employees who would normally work on Sunday)
32
+ Time.new(2010, 12, 27, 0, 0, 0, 46800), # Christmas Day Public Holiday for employees who would not normally work on Saturday
33
+ Time.new(2010, 12, 28, 0, 0, 0, 46800), # Boxing Day Public Holiday for employees who would not normally work on Sunday
34
+ Time.new(2011, 1, 1, 0, 0, 0, 46800), # New Year's Day (Public Holiday for employees who would normally work on Saturday)
35
+ Time.new(2011, 1, 2, 0, 0, 0, 46800), # Day after New Year's Day (Public Holiday for employees who would normally work on Sunday)
36
+ Time.new(2011, 1, 3, 0, 0, 0, 46800), # New Year's Day Public Holiday for employees who would not normally work on Saturday
37
+ Time.new(2011, 1, 4, 0, 0, 0, 46800), # Day after New Year's Day Public Holiday for employees who would not normally work on Sunday
38
+ Time.new(2011, 2, 6, 0, 0, 0, 46800), # Waitangi Day
39
+ Time.new(2011, 4, 22, 0, 0, 0, 43200), # Good Friday
40
+ Time.new(2011, 4, 25, 0, 0, 0, 43200), # Easter Monday
41
+ Time.new(2011, 4, 25, 0, 0, 0, 43200), # ANZAC Day
42
+ Time.new(2011, 6, 6, 0, 0, 0, 43200), # Queen's Birthday
43
+ Time.new(2011, 10, 24, 0, 0, 0, 46800), # Labour Day
44
+ Time.new(2011, 12, 25, 0, 0, 0, 46800), # Christmas Day (Public Holiday for employees who would normally work on Sunday)
45
+ Time.new(2011, 12, 26, 0, 0, 0, 46800), # Boxing Day
46
+ Time.new(2011, 12, 27, 0, 0, 0, 46800), # Christmas Day (Public Holiday for employees who would not normally work on Sunday)
47
+ Time.new(2012, 1, 1, 0, 0, 0, 46800), # New Year's Day (Public Holiday for employees who would normally work on Sunday)
48
+ Time.new(2012, 1, 2, 0, 0, 0, 46800), # Day after New Year's Day
49
+ Time.new(2012, 1, 3, 0, 0, 0, 46800), # New Year's Day Public Holiday for employees who would not normally work on Sunday
50
+ Time.new(2012, 2, 6, 0, 0, 0, 46800), # Waitangi Day
51
+ Time.new(2012, 4, 6, 0, 0, 0, 43200), # Good Friday
52
+ Time.new(2012, 4, 9, 0, 0, 0, 43200), # Easter Monday
53
+ Time.new(2012, 4, 25, 0, 0, 0, 43200), # ANZAC Day
54
+ Time.new(2012, 6, 4, 0, 0, 0, 43200), # Queen's Birthday
55
+ Time.new(2012, 10, 22, 0, 0, 0, 46800), # Labour Day
56
+ Time.new(2012, 12, 25, 0, 0, 0, 46800), # Christmas Day
57
+ Time.new(2012, 12, 26, 0, 0, 0, 46800), # Boxing Day
58
+ Time.new(2013, 1, 1, 0, 0, 0, 46800), # New Year's Day
59
+ Time.new(2013, 1, 2, 0, 0, 0, 46800), # Day after New Year's Day
60
+ Time.new(2013, 2, 6, 0, 0, 0, 46800), # Waitangi Day
61
+ Time.new(2013, 3, 29, 0, 0, 0, 46800), # Good Friday
62
+ Time.new(2013, 4, 1, 0, 0, 0, 46800), # Easter Monday
63
+ Time.new(2013, 4, 25, 0, 0, 0, 43200), # ANZAC Day
64
+ Time.new(2013, 6, 3, 0, 0, 0, 43200), # Queen's Birthday
65
+ Time.new(2013, 10, 28, 0, 0, 0, 46800), # Labour Day
66
+ Time.new(2013, 12, 25, 0, 0, 0, 46800), # Christmas Day
67
+ Time.new(2013, 12, 26, 0, 0, 0, 46800), # Boxing Day
68
+ Time.new(2014, 1, 1, 0, 0, 0, 46800), # New Year's Day
69
+ Time.new(2014, 1, 2, 0, 0, 0, 46800), # Day after New Year's Day
70
+ Time.new(2014, 2, 6, 0, 0, 0, 46800), # Waitangi Day
71
+ Time.new(2014, 4, 18, 0, 0, 0, 43200), # Good Friday
72
+ Time.new(2014, 4, 21, 0, 0, 0, 43200), # Easter Monday
73
+ Time.new(2014, 4, 25, 0, 0, 0, 43200), # ANZAC Day
74
+ Time.new(2014, 6, 2, 0, 0, 0, 43200), # Queen's Birthday
75
+ Time.new(2014, 10, 27, 0, 0, 0, 46800), # Labour Day
76
+ Time.new(2014, 12, 25, 0, 0, 0, 46800), # Christmas Day
77
+ Time.new(2014, 12, 26, 0, 0, 0, 46800), # Boxing Day
78
+ Time.new(2015, 1, 1, 0, 0, 0, 46800), # New Year's Day
79
+ Time.new(2015, 1, 2, 0, 0, 0, 46800), # Day after New Year's Day
80
+ Time.new(2015, 2, 6, 0, 0, 0, 46800), # Waitangi Day
81
+ Time.new(2015, 4, 3, 0, 0, 0, 46800), # Good Friday
82
+ Time.new(2015, 4, 6, 0, 0, 0, 43200), # Easter Monday
83
+ Time.new(2015, 4, 25, 0, 0, 0, 43200), # ANZAC Day
84
+ Time.new(2015, 4, 27, 0, 0, 0, 43200), # ANZAC Day (Mondayised)
85
+ Time.new(2015, 6, 1, 0, 0, 0, 43200), # Queen's Birthday
86
+ Time.new(2015, 10, 26, 0, 0, 0, 46800), # Labour Day
87
+ Time.new(2015, 12, 25, 0, 0, 0, 46800), # Christmas Day
88
+ Time.new(2015, 12, 26, 0, 0, 0, 46800), # Boxing Day (Public Holiday for employees who would normally work on Saturday)
89
+ Time.new(2015, 12, 28, 0, 0, 0, 46800), # Boxing Day (Public Holiday for employees who would not normally work on Saturday)
90
+ Time.new(2016, 1, 1, 0, 0, 0, 46800), # New Year's Day
91
+ Time.new(2016, 1, 2, 0, 0, 0, 46800), # Day after New Year's Day (Public Holiday for employees who would normally work on Saturday)
92
+ Time.new(2016, 1, 4, 0, 0, 0, 46800), # Day after New Year's Day (Public Holiday for employees who would not normally work on Saturday)
93
+ Time.new(2016, 2, 6, 0, 0, 0, 46800), # Waitangi Day
94
+ Time.new(2016, 2, 8, 0, 0, 0, 46800), # Waitangi Day (Mondayised)
95
+ Time.new(2016, 3, 25, 0, 0, 0, 46800), # Good Friday
96
+ Time.new(2016, 3, 28, 0, 0, 0, 46800), # Easter Monday
97
+ Time.new(2016, 4, 25, 0, 0, 0, 43200), # ANZAC Day
98
+ Time.new(2016, 6, 6, 0, 0, 0, 43200), # Queen's Birthday
99
+ Time.new(2016, 10, 24, 0, 0, 0, 46800), # Labour Day
100
+ Time.new(2016, 12, 25, 0, 0, 0, 46800), # Christmas Day (Public Holiday for employees who would normally work on Sunday)
101
+ Time.new(2016, 12, 26, 0, 0, 0, 46800), # Boxing Day
102
+ Time.new(2016, 12, 27, 0, 0, 0, 46800), # Christmas Day (Public Holiday for employees who would not normally work on Sunday)
103
+ Time.new(2017, 1, 1, 0, 0, 0, 46800), # New Year's Day (Public Holiday for employees who would normally work on Sunday)
104
+ Time.new(2017, 1, 2, 0, 0, 0, 46800), # Day after New Year's Day
105
+ Time.new(2017, 1, 3, 0, 0, 0, 46800), # New Year's Day (Public Holiday for employees who would not normally work on Sunday)
106
+ Time.new(2017, 2, 6, 0, 0, 0, 46800), # Waitangi Day
107
+ Time.new(2017, 4, 14, 0, 0, 0, 43200), # Good Friday
108
+ Time.new(2017, 4, 17, 0, 0, 0, 43200), # Easter Monday
109
+ Time.new(2017, 4, 25, 0, 0, 0, 43200), # ANZAC Day
110
+ Time.new(2017, 6, 5, 0, 0, 0, 43200), # Queen's Birthday
111
+ Time.new(2017, 10, 23, 0, 0, 0, 46800), # Labour Day
112
+ Time.new(2017, 12, 25, 0, 0, 0, 46800), # Christmas Day
113
+ Time.new(2017, 12, 26, 0, 0, 0, 46800), # Boxing Day
114
+ Time.new(2018, 1, 1, 0, 0, 0, 46800), # New Year's Day
115
+ Time.new(2018, 1, 2, 0, 0, 0, 46800), # Day after New Year's Day
116
+ Time.new(2018, 2, 6, 0, 0, 0, 46800), # Waitangi Day
117
+ Time.new(2018, 3, 30, 0, 0, 0, 46800), # Good Friday
118
+ Time.new(2018, 4, 2, 0, 0, 0, 43200), # Easter Monday
119
+ Time.new(2018, 4, 25, 0, 0, 0, 43200), # ANZAC Day
120
+ Time.new(2018, 6, 4, 0, 0, 0, 43200), # Queen's Birthday
121
+ Time.new(2018, 10, 22, 0, 0, 0, 46800), # Labour Day
122
+ Time.new(2018, 12, 25, 0, 0, 0, 46800), # Christmas Day
123
+ Time.new(2018, 12, 26, 0, 0, 0, 46800), # Boxing Day
124
+ Time.new(2019, 1, 1, 0, 0, 0, 46800), # New Year's Day
125
+ Time.new(2019, 1, 2, 0, 0, 0, 46800), # Day after New Year's Day
126
+ Time.new(2019, 2, 6, 0, 0, 0, 46800), # Waitangi Day
127
+ Time.new(2019, 4, 19, 0, 0, 0, 43200), # Good Friday
128
+ Time.new(2019, 4, 22, 0, 0, 0, 43200), # Easter Monday
129
+ Time.new(2019, 4, 25, 0, 0, 0, 43200), # ANZAC Day
130
+ Time.new(2019, 6, 3, 0, 0, 0, 43200), # Queen's Birthday
131
+ Time.new(2019, 10, 28, 0, 0, 0, 46800), # Labour Day
132
+ Time.new(2019, 12, 25, 0, 0, 0, 46800), # Christmas Day
133
+ Time.new(2019, 12, 26, 0, 0, 0, 46800), # Boxing Day
134
+ Time.new(2020, 1, 1, 0, 0, 0, 46800), # New Year's Day
135
+ Time.new(2020, 1, 2, 0, 0, 0, 46800), # Day after New Year's Day
136
+ Time.new(2020, 2, 6, 0, 0, 0, 46800), # Waitangi Day
137
+ Time.new(2020, 4, 10, 0, 0, 0, 43200), # Good Friday
138
+ Time.new(2020, 4, 13, 0, 0, 0, 43200), # Easter Monday
139
+ Time.new(2020, 4, 25, 0, 0, 0, 43200), # ANZAC Day
140
+ Time.new(2020, 4, 27, 0, 0, 0, 43200), # ANZAC Day (Mondayised)
141
+ Time.new(2020, 6, 1, 0, 0, 0, 43200), # Queen's Birthday
142
+ Time.new(2020, 10, 26, 0, 0, 0, 46800), # Labour Day
143
+ Time.new(2020, 12, 25, 0, 0, 0, 46800), # Christmas Day
144
+ Time.new(2020, 12, 26, 0, 0, 0, 46800), # Boxing Day (Public Holiday for employees who would normally work on Saturday)
145
+ Time.new(2020, 12, 28, 0, 0, 0, 46800), # Boxing Day (Public Holiday for employees who would not normally work on Saturday)
146
+ Time.new(2021, 1, 1, 0, 0, 0, 46800), # New Year's Day
147
+ Time.new(2021, 1, 2, 0, 0, 0, 46800), # Day after New Year's Day (Public Holiday for employees who would normally work on Saturday)
148
+ Time.new(2021, 1, 4, 0, 0, 0, 46800), # Day after New Year's Day (Public Holiday for employees who would not normally work on Saturday)
149
+ Time.new(2021, 2, 6, 0, 0, 0, 46800), # Waitangi Day
150
+ Time.new(2021, 2, 8, 0, 0, 0, 46800), # Waitangi Day (Mondayised)
151
+ Time.new(2021, 4, 2, 0, 0, 0, 46800), # Good Friday
152
+ Time.new(2021, 4, 5, 0, 0, 0, 43200), # Easter Monday
153
+ Time.new(2021, 4, 25, 0, 0, 0, 43200), # ANZAC Day
154
+ Time.new(2021, 4, 26, 0, 0, 0, 43200), # ANZAC Day (Mondayised)
155
+ Time.new(2021, 6, 7, 0, 0, 0, 43200), # Queen's Birthday
156
+ Time.new(2021, 10, 25, 0, 0, 0, 46800), # Labour Day
157
+ Time.new(2021, 12, 25, 0, 0, 0, 46800), # Christmas Day (Public Holiday for employees who would normally work on Saturday)
158
+ Time.new(2021, 12, 26, 0, 0, 0, 46800), # Boxing Day (Public Holiday for employees who would normally work on Sunday)
159
+ Time.new(2021, 12, 27, 0, 0, 0, 46800), # Christmas Day (Public Holiday for employees who would not normally work on Saturday)
160
+ Time.new(2021, 12, 28, 0, 0, 0, 46800), # Boxing Day (Public Holiday for employees who would not normally work on Sunday)
161
+ ]
162
+
163
+ ANNIVERSARIES = [
164
+ Time.new(2008, 12, 1, 0, 0, 0, 46800), # Westland Anniversary Day
165
+ Time.new(2008, 12, 1, 0, 0, 0, 46800), # Chatham Islands Anniversary Day
166
+ Time.new(2009, 1, 19, 0, 0, 0, 46800), # Wellington Anniversary Day
167
+ Time.new(2009, 1, 19, 0, 0, 0, 46800), # Southland Anniversary Day
168
+ Time.new(2009, 1, 26, 0, 0, 0, 46800), # Auckland Anniversary Day
169
+ Time.new(2009, 2, 2, 0, 0, 0, 46800), # Nelson Anniversary Day
170
+ Time.new(2009, 3, 9, 0, 0, 0, 46800), # Taranaki Anniversary Day
171
+ Time.new(2009, 3, 23, 0, 0, 0, 46800), # Otago Anniversary Day
172
+ Time.new(2009, 9, 28, 0, 0, 0, 46800), # South Canterbury Anniversary Day
173
+ Time.new(2009, 10, 23, 0, 0, 0, 46800), # Hawkes' Bay Anniversary Day
174
+ Time.new(2009, 11, 2, 0, 0, 0, 46800), # Marlborough Anniversary Day
175
+ Time.new(2009, 11, 13, 0, 0, 0, 46800), # Canterbury Anniversary Day
176
+ Time.new(2009, 11, 30, 0, 0, 0, 46800), # Chatham Islands Anniversary Day
177
+ Time.new(2009, 11, 30, 0, 0, 0, 46800), # Westland Anniversary Day
178
+ Time.new(2010, 1, 18, 0, 0, 0, 46800), # Southland Anniversary Day
179
+ Time.new(2010, 1, 25, 0, 0, 0, 46800), # Wellington Anniversary Day
180
+ Time.new(2010, 2, 1, 0, 0, 0, 46800), # Auckland Anniversary Day
181
+ Time.new(2010, 2, 1, 0, 0, 0, 46800), # Nelson Anniversary Day
182
+ Time.new(2010, 3, 8, 0, 0, 0, 46800), # Taranaki Anniversary Day
183
+ Time.new(2010, 3, 22, 0, 0, 0, 46800), # Otago Anniversary Day
184
+ Time.new(2010, 9, 27, 0, 0, 0, 46800), # South Canterbury Anniversary Day
185
+ Time.new(2010, 10, 22, 0, 0, 0, 46800), # Hawkes' Bay Anniversary Day
186
+ Time.new(2010, 11, 1, 0, 0, 0, 46800), # Marlborough Anniversary Day
187
+ Time.new(2010, 11, 12, 0, 0, 0, 46800), # Canterbury Anniversary Day
188
+ Time.new(2010, 11, 29, 0, 0, 0, 46800), # Chatham Islands Anniversary Day
189
+ Time.new(2010, 11, 29, 0, 0, 0, 46800), # Westland Anniversary Day
190
+ Time.new(2011, 1, 17, 0, 0, 0, 46800), # Southland Anniversary Day
191
+ Time.new(2011, 1, 24, 0, 0, 0, 46800), # Wellington Anniversary Day
192
+ Time.new(2011, 1, 31, 0, 0, 0, 46800), # Nelson Anniversary Day
193
+ Time.new(2011, 1, 31, 0, 0, 0, 46800), # Auckland Anniversary Day
194
+ Time.new(2011, 3, 14, 0, 0, 0, 46800), # Taranaki Anniversary Day
195
+ Time.new(2011, 3, 21, 0, 0, 0, 46800), # Otago Anniversary Day
196
+ Time.new(2011, 9, 26, 0, 0, 0, 46800), # South Canterbury Anniversary Day
197
+ Time.new(2011, 10, 21, 0, 0, 0, 46800), # Hawkes' Bay Anniversary Day
198
+ Time.new(2011, 10, 31, 0, 0, 0, 46800), # Marlborough Anniversary Day
199
+ Time.new(2011, 11, 11, 0, 0, 0, 46800), # Canterbury Anniversary Day
200
+ Time.new(2011, 11, 28, 0, 0, 0, 46800), # Chatham Islands Anniversary Day
201
+ Time.new(2011, 12, 5, 0, 0, 0, 46800), # Westland Anniversary Day
202
+ Time.new(2012, 1, 16, 0, 0, 0, 46800), # Southland Anniversary Day
203
+ Time.new(2012, 1, 23, 0, 0, 0, 46800), # Wellington Anniversary Day
204
+ Time.new(2012, 1, 30, 0, 0, 0, 46800), # Auckland Anniversary Day
205
+ Time.new(2012, 1, 30, 0, 0, 0, 46800), # Nelson Anniversary Day
206
+ Time.new(2012, 3, 12, 0, 0, 0, 46800), # Taranaki Anniversary Day
207
+ Time.new(2012, 3, 26, 0, 0, 0, 46800), # Otago Anniversary Day
208
+ Time.new(2012, 9, 24, 0, 0, 0, 43200), # South Canterbury Anniversary Day
209
+ Time.new(2012, 10, 19, 0, 0, 0, 46800), # Hawkes' Bay Anniversary Day
210
+ Time.new(2012, 10, 29, 0, 0, 0, 46800), # Marlborough Anniversary Day
211
+ Time.new(2012, 11, 16, 0, 0, 0, 46800), # Canterbury Anniversary Day
212
+ Time.new(2012, 12, 3, 0, 0, 0, 46800), # Westland Anniversary Day
213
+ Time.new(2012, 12, 3, 0, 0, 0, 46800), # Chatham Islands Anniversary Day
214
+ Time.new(2013, 1, 21, 0, 0, 0, 46800), # Wellington Anniversary Day
215
+ Time.new(2013, 1, 21, 0, 0, 0, 46800), # Southland Anniversary Day
216
+ Time.new(2013, 1, 28, 0, 0, 0, 46800), # Auckland Anniversary Day
217
+ Time.new(2013, 2, 4, 0, 0, 0, 46800), # Nelson Anniversary Day
218
+ Time.new(2013, 3, 11, 0, 0, 0, 46800), # Taranaki Anniversary Day
219
+ Time.new(2013, 3, 25, 0, 0, 0, 46800), # Otago Anniversary Day
220
+ Time.new(2013, 9, 23, 0, 0, 0, 43200), # South Canterbury Anniversary Day
221
+ Time.new(2013, 10, 25, 0, 0, 0, 46800), # Hawkes' Bay Anniversary Day
222
+ Time.new(2013, 11, 4, 0, 0, 0, 46800), # Marlborough Anniversary Day
223
+ Time.new(2013, 11, 15, 0, 0, 0, 46800), # Canterbury Anniversary Day
224
+ Time.new(2013, 12, 2, 0, 0, 0, 46800), # Westland Anniversary Day
225
+ Time.new(2013, 12, 2, 0, 0, 0, 46800), # Chatham Islands Anniversary Day
226
+ Time.new(2014, 1, 20, 0, 0, 0, 46800), # Wellington Anniversary Day
227
+ Time.new(2014, 1, 27, 0, 0, 0, 46800), # Auckland Anniversary Day
228
+ Time.new(2014, 2, 3, 0, 0, 0, 46800), # Nelson Anniversary Day
229
+ Time.new(2014, 3, 10, 0, 0, 0, 46800), # Taranaki Anniversary Day
230
+ Time.new(2014, 3, 24, 0, 0, 0, 46800), # Otago Anniversary Day
231
+ Time.new(2014, 4, 22, 0, 0, 0, 43200), # Southland Anniversary Day
232
+ Time.new(2014, 9, 22, 0, 0, 0, 43200), # South Canterbury Anniversary Day
233
+ Time.new(2014, 10, 24, 0, 0, 0, 46800), # Hawkes' Bay Anniversary Day
234
+ Time.new(2014, 11, 3, 0, 0, 0, 46800), # Marlborough Anniversary Day
235
+ Time.new(2014, 11, 14, 0, 0, 0, 46800), # Canterbury Anniversary Day
236
+ Time.new(2014, 12, 1, 0, 0, 0, 46800), # Westland Anniversary Day
237
+ Time.new(2014, 12, 1, 0, 0, 0, 46800), # Chatham Islands Anniversary Day
238
+ Time.new(2015, 1, 19, 0, 0, 0, 46800), # Wellington Anniversary Day
239
+ Time.new(2015, 1, 26, 0, 0, 0, 46800), # Auckland Anniversary Day
240
+ Time.new(2015, 2, 2, 0, 0, 0, 46800), # Nelson Anniversary Day
241
+ Time.new(2015, 3, 9, 0, 0, 0, 46800), # Taranaki Anniversary Day
242
+ Time.new(2015, 3, 23, 0, 0, 0, 46800), # Otago Anniversary Day
243
+ Time.new(2015, 4, 7, 0, 0, 0, 43200), # Southland Anniversary Day
244
+ Time.new(2015, 9, 28, 0, 0, 0, 46800), # South Canterbury Anniversary Day
245
+ Time.new(2015, 10, 23, 0, 0, 0, 46800), # Hawkes' Bay Anniversary Day
246
+ Time.new(2015, 11, 2, 0, 0, 0, 46800), # Marlborough Anniversary Day
247
+ Time.new(2015, 11, 13, 0, 0, 0, 46800), # Canterbury Anniversary Day
248
+ Time.new(2015, 11, 30, 0, 0, 0, 46800), # Westland Anniversary Day
249
+ Time.new(2015, 11, 30, 0, 0, 0, 46800), # Chatham Islands Anniversary Day
250
+ Time.new(2016, 1, 25, 0, 0, 0, 46800), # Wellington Anniversary Day
251
+ Time.new(2016, 2, 1, 0, 0, 0, 46800), # Nelson Anniversary Day
252
+ Time.new(2016, 2, 1, 0, 0, 0, 46800), # Auckland Anniversary Day
253
+ Time.new(2016, 3, 14, 0, 0, 0, 46800), # Taranaki Anniversary Day
254
+ Time.new(2016, 3, 21, 0, 0, 0, 46800), # Otago Anniversary Day
255
+ Time.new(2016, 3, 29, 0, 0, 0, 46800), # Southland Anniversary Day
256
+ Time.new(2016, 9, 26, 0, 0, 0, 46800), # South Canterbury Anniversary Day
257
+ Time.new(2016, 10, 21, 0, 0, 0, 46800), # Hawkes' Bay Anniversary Day
258
+ Time.new(2016, 10, 31, 0, 0, 0, 46800), # Marlborough Anniversary Day
259
+ Time.new(2016, 11, 11, 0, 0, 0, 46800), # Canterbury Anniversary Day
260
+ Time.new(2016, 11, 28, 0, 0, 0, 46800), # Westland Anniversary Day
261
+ Time.new(2016, 11, 28, 0, 0, 0, 46800), # Chatham Islands Anniversary Day
262
+ Time.new(2017, 1, 23, 0, 0, 0, 46800), # Wellington Anniversary
263
+ Time.new(2017, 1, 30, 0, 0, 0, 46800), # Auckland Anniversary
264
+ Time.new(2017, 1, 30, 0, 0, 0, 46800), # Nelson Anniversary
265
+ Time.new(2017, 3, 13, 0, 0, 0, 46800), # Taranaki Anniversary
266
+ Time.new(2017, 3, 20, 0, 0, 0, 46800), # Otago Anniversary
267
+ Time.new(2017, 4, 18, 0, 0, 0, 43200), # Southland Anniversary
268
+ Time.new(2017, 9, 25, 0, 0, 0, 46800), # Canterbury (South) Anniversary
269
+ Time.new(2017, 10, 20, 0, 0, 0, 46800), # Hawke's Bay Anniversary
270
+ Time.new(2017, 10, 30, 0, 0, 0, 46800), # Marlborough Anniversary
271
+ Time.new(2017, 11, 17, 0, 0, 0, 46800), # Canterbury Anniversary
272
+ Time.new(2017, 11, 27, 0, 0, 0, 46800), # Chatham Islands Anniversary
273
+ Time.new(2017, 12, 4, 0, 0, 0, 46800), # Westland Anniversary
274
+ Time.new(2018, 1, 22, 0, 0, 0, 46800), # Wellington Anniversary
275
+ Time.new(2018, 1, 29, 0, 0, 0, 46800), # Nelson Anniversary
276
+ Time.new(2018, 1, 29, 0, 0, 0, 46800), # Auckland Anniversary
277
+ Time.new(2018, 3, 12, 0, 0, 0, 46800), # Taranaki Anniversary
278
+ Time.new(2018, 3, 26, 0, 0, 0, 46800), # Otago Anniversary
279
+ Time.new(2018, 4, 3, 0, 0, 0, 43200), # Southland Anniversary
280
+ Time.new(2018, 9, 24, 0, 0, 0, 43200), # Canterbury (South) Anniversary
281
+ Time.new(2018, 10, 19, 0, 0, 0, 46800), # Hawke's Bay Anniversary
282
+ Time.new(2018, 10, 29, 0, 0, 0, 46800), # Marlborough Anniversary
283
+ Time.new(2018, 11, 16, 0, 0, 0, 46800), # Canterbury Anniversary
284
+ Time.new(2018, 12, 3, 0, 0, 0, 46800), # Chatham Islands Anniversary
285
+ Time.new(2018, 12, 3, 0, 0, 0, 46800), # Westland Anniversary
286
+ Time.new(2019, 1, 21, 0, 0, 0, 46800), # Wellington Anniversary
287
+ Time.new(2019, 1, 28, 0, 0, 0, 46800), # Auckland Anniversary
288
+ Time.new(2019, 2, 4, 0, 0, 0, 46800), # Nelson Anniversary
289
+ Time.new(2019, 3, 11, 0, 0, 0, 46800), # Taranaki Anniversary
290
+ Time.new(2019, 3, 25, 0, 0, 0, 46800), # Otago Anniversary
291
+ Time.new(2019, 4, 23, 0, 0, 0, 43200), # Southland Anniversary
292
+ Time.new(2019, 9, 23, 0, 0, 0, 43200), # Canterbury (South) Anniversary
293
+ Time.new(2019, 10, 25, 0, 0, 0, 46800), # Hawke's Bay Anniversary
294
+ Time.new(2019, 11, 4, 0, 0, 0, 46800), # Marlborough Anniversary
295
+ Time.new(2019, 11, 15, 0, 0, 0, 46800), # Canterbury Anniversary
296
+ Time.new(2019, 12, 2, 0, 0, 0, 46800), # Chatham Islands Anniversary
297
+ Time.new(2019, 12, 2, 0, 0, 0, 46800), # Westland Anniversary
298
+ Time.new(2020, 1, 20, 0, 0, 0, 46800), # Wellington Anniversary
299
+ Time.new(2020, 1, 27, 0, 0, 0, 46800), # Auckland Anniversary
300
+ Time.new(2020, 2, 3, 0, 0, 0, 46800), # Nelson Anniversary
301
+ Time.new(2020, 3, 9, 0, 0, 0, 46800), # Taranaki Anniversary
302
+ Time.new(2020, 3, 23, 0, 0, 0, 46800), # Otago Anniversary
303
+ Time.new(2020, 4, 14, 0, 0, 0, 43200), # Southland Anniversary
304
+ Time.new(2020, 9, 28, 0, 0, 0, 46800), # Canterbury (South) Anniversary
305
+ Time.new(2020, 10, 23, 0, 0, 0, 46800), # Hawke's Bay Anniversary
306
+ Time.new(2020, 11, 2, 0, 0, 0, 46800), # Marlborough Anniversary
307
+ Time.new(2020, 11, 13, 0, 0, 0, 46800), # Canterbury Anniversary
308
+ Time.new(2020, 11, 30, 0, 0, 0, 46800), # Chatham Islands Anniversary
309
+ Time.new(2020, 11, 30, 0, 0, 0, 46800), # Westland Anniversary
310
+ Time.new(2021, 1, 25, 0, 0, 0, 46800), # Wellington Anniversary
311
+ Time.new(2021, 2, 1, 0, 0, 0, 46800), # Nelson Anniversary
312
+ Time.new(2021, 2, 1, 0, 0, 0, 46800), # Auckland Anniversary
313
+ Time.new(2021, 3, 8, 0, 0, 0, 46800), # Taranaki Anniversary
314
+ Time.new(2021, 3, 22, 0, 0, 0, 46800), # Otago Anniversary
315
+ Time.new(2021, 4, 6, 0, 0, 0, 43200), # Southland Anniversary
316
+ Time.new(2021, 9, 27, 0, 0, 0, 46800), # Canterbury (South) Anniversary
317
+ Time.new(2021, 10, 22, 0, 0, 0, 46800), # Hawke's Bay Anniversary
318
+ Time.new(2021, 11, 1, 0, 0, 0, 46800), # Marlborough Anniversary
319
+ Time.new(2021, 11, 12, 0, 0, 0, 46800), # Canterbury Anniversary
320
+ Time.new(2021, 11, 29, 0, 0, 0, 46800), # Chatham Islands Anniversary
321
+ Time.new(2021, 11, 29, 0, 0, 0, 46800), # Westland Anniversary
322
+ ]
323
+
324
+ end
@@ -0,0 +1,35 @@
1
+ module Nzholidays
2
+
3
+ NZ_TIME_ZONE = TZInfo::Timezone.get('Pacific/Auckland')
4
+
5
+ # Returns a Time object representing the start of a day in NZST
6
+ # GMT offset takes into account Daylight Savings Time, i.e. is +1200 or +1300
7
+ def self.nz_time(year, month, day)
8
+
9
+ # Holiday starts at the beginning of the given day
10
+ time = ::Time.new(year, month, day, 0, 0, 0)
11
+
12
+ # Find the UTC total offset (daylight savings or standard time) for time
13
+
14
+ # note period_for_local ignores timezone info in the time object
15
+ # http://www.rubydoc.info/gems/tzinfo/TZInfo/Timezone#period_for_local-instance_method
16
+
17
+ utc_total_offset = NZ_TIME_ZONE.period_for_local(time).utc_total_offset
18
+
19
+ time.getlocal(utc_total_offset)
20
+ end
21
+
22
+ # Returns true if the given date is a national public holiday in NZ
23
+ def self.nz_public_holiday?(query)
24
+ !!HOLIDAYS.find do |hol|
25
+ hol.year == query.year && hol.month == query.month && hol.day == query.day
26
+ end
27
+ end
28
+
29
+ # Returns true if the given date is a regional anniversary holiday somewhere in NZ
30
+ def self.nz_anniversary?(query)
31
+ !!ANNIVERSARIES.find do |hol|
32
+ hol.year == query.year && hol.month == query.month && hol.day == query.day
33
+ end
34
+ end
35
+ end
@@ -1,55 +1,16 @@
1
- <%
2
- require "bundler/setup"
3
-
4
- require 'open-uri'
5
- require 'net/http'
6
- require 'icalendar'
7
- require 'tzinfo'
8
-
9
- SOURCE_URL = 'http://apps.employment.govt.nz/ical/public-holidays-all.ics'
10
- FILE='holidays.ics'
11
-
12
- # Download the ICS file
13
- open(FILE, 'wb') do |file|
14
- file << open(SOURCE_URL).read
15
- end
16
-
17
- cal_file = File.open(FILE)
18
- calendars = Icalendar::Calendar.parse(cal_file)
19
-
20
- -%>
21
1
  # Auto-generated at <%= Time.now %>
22
- # Do not edit - see template lib/nzholidays/template.erb
2
+ # Do not edit - see template <%= __FILE__ %>
23
3
  # To regenerate, `bundle exec rake generate`
24
4
 
25
- require "nzholidays/version"
26
- require 'time'
27
- require 'tzinfo'
28
-
29
5
  module Nzholidays
30
6
 
31
- NZ_TIME_ZONE = TZInfo::Timezone.get('Pacific/Auckland')
32
-
33
- def self.nz_time(year, month, day)
34
-
35
- # Holiday starts at the beginning of the given day
36
- time = ::Time.new(year, month, day, 0, 0, 0)
37
-
38
- # Find the UTC total offset (daylight savings or standard time) for time
39
-
40
- # note period_for_local ignores timezone info in the time object
41
- # http://www.rubydoc.info/gems/tzinfo/TZInfo/Timezone#period_for_local-instance_method
42
-
43
- utc_total_offset = NZ_TIME_ZONE.period_for_local(time).utc_total_offset
44
-
45
- time.getlocal(utc_total_offset)
46
- end
47
-
48
7
  HOLIDAYS = [
49
8
  <% calendars.each do |calendar|
50
- calendar.events.select {|e| !e.summary.match(/Anniversary/i) }.each do |event|
51
- -%>
52
- nz_time( <%= event.dtstart.year %>, <%= event.dtstart.month %>, <%= event.dtstart.day %> ), # <%= event.summary %>
9
+ events = calendar.events.select {|e| !e.summary.match(/Anniversary/i) }.sort {|a,b| a.dtstart <=> b.dtstart }
10
+ events.each do |event|
11
+ time = Nzholidays.nz_time(event.dtstart.year, event.dtstart.month, event.dtstart.day)
12
+ -%>
13
+ Time.new(<%= time.year %>, <%= time.month %>, <%= time.day %>, <%= time.hour %>, <%= time.min %>, <%= time.sec %>, <%= time.gmt_offset %>), # <%= event.summary %>
53
14
  <%
54
15
  end
55
16
  end
@@ -58,25 +19,15 @@ module Nzholidays
58
19
 
59
20
  ANNIVERSARIES = [
60
21
  <% calendars.each do |calendar|
61
- calendar.events.select {|e| !!e.summary.match(/Anniversary/i) }.each do |event|
22
+ events = calendar.events.select {|e| !!e.summary.match(/Anniversary/i) }.sort {|a,b| a.dtstart <=> b.dtstart }
23
+ events.each do |event|
24
+ time = Nzholidays.nz_time(event.dtstart.year, event.dtstart.month, event.dtstart.day)
62
25
  -%>
63
- nz_time( <%= event.dtstart.year %>, <%= event.dtstart.month %>, <%= event.dtstart.day %> ), # <%= event.summary %>
26
+ Time.new(<%= time.year %>, <%= time.month %>, <%= time.day %>, <%= time.hour %>, <%= time.min %>, <%= time.sec %>, <%= time.gmt_offset %>), # <%= event.summary %>
64
27
  <%
65
28
  end
66
29
  end
67
30
  -%>
68
31
  ]
69
32
 
70
- def self.nz_public_holiday?(query)
71
- !!HOLIDAYS.find do |hol|
72
- hol.year == query.year && hol.month == query.month && hol.day == query.day
73
- end
74
- end
75
-
76
- def self.nz_anniversary?(query)
77
- !!ANNIVERSARIES.find do |hol|
78
- hol.year == query.year && hol.month == query.month && hol.day == query.day
79
- end
80
- end
81
-
82
33
  end
@@ -1,3 +1,3 @@
1
1
  module Nzholidays
2
- VERSION = "0.4.0"
2
+ VERSION = "0.5.0"
3
3
  end
data/nzholidays.gemspec CHANGED
@@ -21,10 +21,10 @@ Gem::Specification.new do |spec|
21
21
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
22
22
  spec.require_paths = ["lib"]
23
23
 
24
- spec.add_dependency "tzinfo"
24
+ spec.add_dependency "tzinfo", "~> 1.2.5"
25
25
 
26
- spec.add_development_dependency "bundler", "~> 1.16"
27
- spec.add_development_dependency "rake", "~> 10.0"
28
- spec.add_development_dependency "rspec", "~> 3.0"
29
- spec.add_development_dependency "icalendar", "= 2.4"
26
+ spec.add_development_dependency "bundler", "~> 1.16"
27
+ spec.add_development_dependency "rake", "~> 10.5.0"
28
+ spec.add_development_dependency "rspec", "~> 3.8.0"
29
+ spec.add_development_dependency "icalendar", "~> 2.4.0"
30
30
  end
metadata CHANGED
@@ -1,29 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: nzholidays
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.0
4
+ version: 0.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Carl Douglas
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-10-02 00:00:00.000000000 Z
11
+ date: 2018-10-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: tzinfo
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ">="
17
+ - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '0'
19
+ version: 1.2.5
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - ">="
24
+ - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '0'
26
+ version: 1.2.5
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: bundler
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -44,42 +44,42 @@ dependencies:
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: '10.0'
47
+ version: 10.5.0
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: '10.0'
54
+ version: 10.5.0
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: rspec
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: '3.0'
61
+ version: 3.8.0
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: '3.0'
68
+ version: 3.8.0
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: icalendar
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
- - - '='
73
+ - - "~>"
74
74
  - !ruby/object:Gem::Version
75
- version: '2.4'
75
+ version: 2.4.0
76
76
  type: :development
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
- - - '='
80
+ - - "~>"
81
81
  - !ruby/object:Gem::Version
82
- version: '2.4'
82
+ version: 2.4.0
83
83
  description: New Zealand Public Holidays
84
84
  email:
85
85
  - 105003+carld@users.noreply.github.com
@@ -98,6 +98,8 @@ files:
98
98
  - bin/console
99
99
  - bin/setup
100
100
  - lib/nzholidays.rb
101
+ - lib/nzholidays/calendar.rb
102
+ - lib/nzholidays/nztime.rb
101
103
  - lib/nzholidays/template.erb
102
104
  - lib/nzholidays/version.rb
103
105
  - nzholidays.gemspec