holidays 1.0.3 → 1.0.4
Sign up to get free protection for your applications and to get access to all the features.
- data/.travis.yml +8 -0
- data/CHANGELOG +3 -0
- data/Gemfile +8 -0
- data/data/build_defs.rb +12 -8
- data/data/index.yaml +3 -1
- data/data/li.yaml +102 -0
- data/data/pl.yaml +310 -0
- data/data/united_nations.yaml +186 -185
- data/holidays.gemspec +61 -11
- data/lib/holidays.rb +19 -2
- data/lib/holidays/MANIFEST +24 -23
- data/lib/holidays/at.rb +17 -13
- data/lib/holidays/au.rb +21 -17
- data/lib/holidays/br.rb +18 -14
- data/lib/holidays/ca.rb +27 -23
- data/lib/holidays/cz.rb +18 -14
- data/lib/holidays/de.rb +18 -14
- data/lib/holidays/dk.rb +20 -16
- data/lib/holidays/el.rb +17 -13
- data/lib/holidays/es.rb +27 -23
- data/lib/holidays/europe.rb +163 -95
- data/lib/holidays/fi.rb +20 -16
- data/lib/holidays/fr.rb +18 -14
- data/lib/holidays/gb.rb +20 -16
- data/lib/holidays/ie.rb +17 -13
- data/lib/holidays/is.rb +21 -17
- data/lib/holidays/it.rb +18 -14
- data/lib/holidays/jp.rb +54 -50
- data/lib/holidays/li.rb +48 -0
- data/lib/holidays/mx.rb +27 -23
- data/lib/holidays/nl.rb +16 -12
- data/lib/holidays/no.rb +14 -10
- data/lib/holidays/north_america.rb +47 -43
- data/lib/holidays/nyse.rb +17 -13
- data/lib/holidays/nz.rb +24 -20
- data/lib/holidays/pl.rb +80 -0
- data/lib/holidays/pt.rb +19 -15
- data/lib/holidays/scandinavia.rb +51 -47
- data/lib/holidays/se.rb +21 -17
- data/lib/holidays/united_nations.rb +68 -8
- data/lib/holidays/ups.rb +15 -11
- data/lib/holidays/us.rb +22 -18
- data/lib/holidays/za.rb +19 -15
- data/rakefile.rb +6 -4
- data/test/defs/test_defs_europe.rb +161 -1
- data/test/defs/test_defs_li.rb +35 -0
- data/test/defs/test_defs_pl.rb +145 -0
- data/test/test_all_regions.rb +48 -0
- metadata +190 -42
data/lib/holidays/fi.rb
CHANGED
@@ -1,48 +1,52 @@
|
|
1
1
|
# encoding: utf-8
|
2
2
|
module Holidays
|
3
|
-
# This file is generated by the Ruby
|
3
|
+
# This file is generated by the Ruby Holidays gem.
|
4
4
|
#
|
5
5
|
# Definitions loaded: data/fi.yaml
|
6
6
|
#
|
7
|
-
# To use the definitions in this file, load
|
7
|
+
# To use the definitions in this file, load it right after you load the
|
8
8
|
# Holiday gem:
|
9
9
|
#
|
10
10
|
# require 'holidays'
|
11
11
|
# require 'holidays/fi'
|
12
12
|
#
|
13
|
-
#
|
13
|
+
# All the definitions are available at https://github.com/alexdunae/holidays
|
14
14
|
module FI # :nodoc:
|
15
|
-
|
15
|
+
def self.defined_regions
|
16
|
+
[:fi]
|
17
|
+
end
|
16
18
|
|
17
|
-
|
18
|
-
|
19
|
-
|
19
|
+
def self.holidays_by_month
|
20
|
+
{
|
21
|
+
0 => [{:function => lambda { |year| Holidays.easter(year)-2 }, :function_id => "easter(year)-2", :name => "Pitkäperjantai", :regions => [:fi]},
|
20
22
|
{:function => lambda { |year| Holidays.easter(year) }, :function_id => "easter(year)", :name => "Pääsiäispäivä", :regions => [:fi]},
|
21
23
|
{:function => lambda { |year| Holidays.easter(year)+1 }, :function_id => "easter(year)+1", :name => "2. Pääsiäispäivä", :regions => [:fi]},
|
22
24
|
{:function => lambda { |year| Holidays.easter(year)+39 }, :function_id => "easter(year)+39", :name => "Helatorstai", :regions => [:fi]},
|
23
25
|
{:function => lambda { |year| Holidays.easter(year)+49 }, :function_id => "easter(year)+49", :name => "Helluntaipäivä", :regions => [:fi]},
|
24
26
|
{:function => lambda { |year| Holidays.fi_pyhainpaiva(year) }, :function_id => "fi_pyhainpaiva(year)", :name => "Pyhäinpäivä", :regions => [:fi]}],
|
25
|
-
6 => [{:function => lambda { |year| Holidays.fi_juhannuspaiva(year) }, :function_id => "fi_juhannuspaiva(year)", :name => "Juhannuspäivä", :regions => [:fi]}],
|
26
27
|
1 => [{:mday => 1, :name => "Uudenvuodenpäivä", :regions => [:fi]},
|
27
28
|
{:mday => 6, :name => "Loppiainen", :regions => [:fi]}],
|
29
|
+
5 => [{:mday => 1, :name => "Vappu", :regions => [:fi]}],
|
30
|
+
6 => [{:function => lambda { |year| Holidays.fi_juhannuspaiva(year) }, :function_id => "fi_juhannuspaiva(year)", :name => "Juhannuspäivä", :regions => [:fi]}],
|
28
31
|
12 => [{:mday => 6, :name => "Itsenäisyyspäivä", :regions => [:fi]},
|
29
32
|
{:mday => 24, :name => "Jouluaatto", :regions => [:fi]},
|
30
33
|
{:mday => 25, :name => "Joulupäivä", :regions => [:fi]},
|
31
34
|
{:mday => 26, :name => "Tapaninpäivä", :regions => [:fi]}]
|
32
|
-
|
35
|
+
}
|
36
|
+
end
|
33
37
|
end
|
34
38
|
|
35
|
-
# Finland:
|
36
|
-
def self.
|
37
|
-
date = Date.civil(year,
|
39
|
+
# Finland: Mid-summer (Saturday between June 20–26)
|
40
|
+
def self.fi_juhannuspaiva(year)
|
41
|
+
date = Date.civil(year,6,20)
|
38
42
|
date += (6 - date.wday)
|
39
43
|
date
|
40
44
|
end
|
41
45
|
|
42
46
|
|
43
|
-
# Finland:
|
44
|
-
def self.
|
45
|
-
date = Date.civil(year,
|
47
|
+
# Finland: All Saint's Day (Saturday between Oct 31 and Nov 6)
|
48
|
+
def self.fi_pyhainpaiva(year)
|
49
|
+
date = Date.civil(year,10,31)
|
46
50
|
date += (6 - date.wday)
|
47
51
|
date
|
48
52
|
end
|
@@ -51,4 +55,4 @@ end
|
|
51
55
|
|
52
56
|
end
|
53
57
|
|
54
|
-
Holidays.merge_defs(Holidays::FI
|
58
|
+
Holidays.merge_defs(Holidays::FI.defined_regions, Holidays::FI.holidays_by_month)
|
data/lib/holidays/fr.rb
CHANGED
@@ -1,37 +1,41 @@
|
|
1
1
|
# encoding: utf-8
|
2
2
|
module Holidays
|
3
|
-
# This file is generated by the Ruby
|
3
|
+
# This file is generated by the Ruby Holidays gem.
|
4
4
|
#
|
5
5
|
# Definitions loaded: data/fr.yaml
|
6
6
|
#
|
7
|
-
# To use the definitions in this file, load
|
7
|
+
# To use the definitions in this file, load it right after you load the
|
8
8
|
# Holiday gem:
|
9
9
|
#
|
10
10
|
# require 'holidays'
|
11
11
|
# require 'holidays/fr'
|
12
12
|
#
|
13
|
-
#
|
13
|
+
# All the definitions are available at https://github.com/alexdunae/holidays
|
14
14
|
module FR # :nodoc:
|
15
|
-
|
15
|
+
def self.defined_regions
|
16
|
+
[:fr]
|
17
|
+
end
|
16
18
|
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
0 => [{:function => lambda { |year| Holidays.easter(year) }, :function_id => "easter(year)", :name => "Pâques", :regions => [:fr]},
|
19
|
+
def self.holidays_by_month
|
20
|
+
{
|
21
|
+
0 => [{:function => lambda { |year| Holidays.easter(year) }, :function_id => "easter(year)", :name => "Pâques", :regions => [:fr]},
|
21
22
|
{:function => lambda { |year| Holidays.easter(year)+1 }, :function_id => "easter(year)+1", :name => "Lundi de Pâques", :regions => [:fr]},
|
22
23
|
{:function => lambda { |year| Holidays.easter(year)+39 }, :function_id => "easter(year)+39", :name => "Ascension", :regions => [:fr]},
|
23
24
|
{:function => lambda { |year| Holidays.easter(year)+49 }, :function_id => "easter(year)+49", :name => "Pentecôte", :regions => [:fr]},
|
24
25
|
{:function => lambda { |year| Holidays.easter(year)+50 }, :function_id => "easter(year)+50", :name => "Lundi de Pentecôte", :regions => [:fr]}],
|
25
|
-
11 => [{:mday => 1, :name => "Toussaint", :regions => [:fr]},
|
26
|
-
{:mday => 11, :name => "Armistice 1918", :regions => [:fr]}],
|
27
26
|
1 => [{:mday => 1, :name => "Jour de l'an", :regions => [:fr]}],
|
28
|
-
|
27
|
+
5 => [{:mday => 1, :name => "Fête du travail", :regions => [:fr]},
|
28
|
+
{:mday => 8, :name => "Victoire 1945", :regions => [:fr]}],
|
29
29
|
7 => [{:mday => 14, :name => "Fête nationale", :regions => [:fr]}],
|
30
|
-
8 => [{:mday => 15, :name => "Assomption", :regions => [:fr]}]
|
31
|
-
|
30
|
+
8 => [{:mday => 15, :name => "Assomption", :regions => [:fr]}],
|
31
|
+
11 => [{:mday => 1, :name => "Toussaint", :regions => [:fr]},
|
32
|
+
{:mday => 11, :name => "Armistice 1918", :regions => [:fr]}],
|
33
|
+
12 => [{:mday => 25, :name => "Nöel", :regions => [:fr]}]
|
34
|
+
}
|
35
|
+
end
|
32
36
|
end
|
33
37
|
|
34
38
|
|
35
39
|
end
|
36
40
|
|
37
|
-
Holidays.merge_defs(Holidays::FR
|
41
|
+
Holidays.merge_defs(Holidays::FR.defined_regions, Holidays::FR.holidays_by_month)
|
data/lib/holidays/gb.rb
CHANGED
@@ -1,41 +1,45 @@
|
|
1
1
|
# encoding: utf-8
|
2
2
|
module Holidays
|
3
|
-
# This file is generated by the Ruby
|
3
|
+
# This file is generated by the Ruby Holidays gem.
|
4
4
|
#
|
5
5
|
# Definitions loaded: data/gb.yaml
|
6
6
|
#
|
7
|
-
# To use the definitions in this file, load
|
7
|
+
# To use the definitions in this file, load it right after you load the
|
8
8
|
# Holiday gem:
|
9
9
|
#
|
10
10
|
# require 'holidays'
|
11
11
|
# require 'holidays/gb'
|
12
12
|
#
|
13
|
-
#
|
13
|
+
# All the definitions are available at https://github.com/alexdunae/holidays
|
14
14
|
module GB # :nodoc:
|
15
|
-
|
15
|
+
def self.defined_regions
|
16
|
+
[:gb, :gb_eng, :gb_wls, :gb_eaw, :gb_nir, :gb_sct, :gb_con, :je, :gb_jsy, :gg, :gb_gsy, :im, :gb_iom]
|
17
|
+
end
|
16
18
|
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
{:wday => 1, :week => -1, :name => "Bank Holiday", :regions => [:gb]}],
|
21
|
-
0 => [{:function => lambda { |year| Holidays.easter(year)-2 }, :function_id => "easter(year)-2", :name => "Good Friday", :regions => [:gb]},
|
19
|
+
def self.holidays_by_month
|
20
|
+
{
|
21
|
+
0 => [{:function => lambda { |year| Holidays.easter(year)-2 }, :function_id => "easter(year)-2", :name => "Good Friday", :regions => [:gb]},
|
22
22
|
{:function => lambda { |year| Holidays.easter(year) }, :function_id => "easter(year)", :name => "Easter Sunday", :regions => [:gb]},
|
23
23
|
{:function => lambda { |year| Holidays.easter(year)+1 }, :function_id => "easter(year)+1", :name => "Easter Monday", :regions => [:gb_eng, :gb_wls, :gb_eaw, :gb_nir]}],
|
24
|
-
11 => [{:mday => 5, :type => :informal, :name => "Guy Fawkes Day", :regions => [:gb]}],
|
25
24
|
1 => [{:mday => 1, :name => "New Year's Day", :regions => [:gb]},
|
26
25
|
{:mday => 2, :name => "New Year's", :regions => [:gb_sct]}],
|
27
|
-
|
28
|
-
{:mday =>
|
26
|
+
3 => [{:mday => 5, :name => "St. Piran's Day", :regions => [:gb_con]},
|
27
|
+
{:mday => 17, :name => "St. Patrick's Day", :regions => [:gb_nir]}],
|
28
|
+
5 => [{:wday => 1, :week => 1, :name => "May Day", :regions => [:gb]},
|
29
|
+
{:mday => 9, :name => "Liberation Day", :regions => [:je, :gb_jsy, :gg, :gb_gsy]},
|
30
|
+
{:wday => 1, :week => -1, :name => "Bank Holiday", :regions => [:gb]}],
|
29
31
|
7 => [{:mday => 5, :name => "Tynwald Day", :regions => [:im, :gb_iom]},
|
30
32
|
{:mday => 12, :name => "Battle of the Boyne", :regions => [:gb_nir]}],
|
31
33
|
8 => [{:wday => 1, :week => 1, :name => "Bank Holiday", :regions => [:gb_sct]},
|
32
34
|
{:wday => 1, :week => -1, :name => "Bank Holiday", :regions => [:gb_eng, :gb_wls, :gb_eaw, :gb_nir]}],
|
33
|
-
|
34
|
-
|
35
|
-
|
35
|
+
11 => [{:mday => 5, :type => :informal, :name => "Guy Fawkes Day", :regions => [:gb]}],
|
36
|
+
12 => [{:mday => 25, :observed => lambda { |date| Holidays.to_monday_if_weekend(date) }, :observed_id => "to_monday_if_weekend", :name => "Christmas Day", :regions => [:gb]},
|
37
|
+
{:mday => 26, :observed => lambda { |date| Holidays.to_weekday_if_boxing_weekend(date) }, :observed_id => "to_weekday_if_boxing_weekend", :name => "Boxing Day", :regions => [:gb]}]
|
38
|
+
}
|
39
|
+
end
|
36
40
|
end
|
37
41
|
|
38
42
|
|
39
43
|
end
|
40
44
|
|
41
|
-
Holidays.merge_defs(Holidays::GB
|
45
|
+
Holidays.merge_defs(Holidays::GB.defined_regions, Holidays::GB.holidays_by_month)
|
data/lib/holidays/ie.rb
CHANGED
@@ -1,33 +1,37 @@
|
|
1
1
|
# encoding: utf-8
|
2
2
|
module Holidays
|
3
|
-
# This file is generated by the Ruby
|
3
|
+
# This file is generated by the Ruby Holidays gem.
|
4
4
|
#
|
5
5
|
# Definitions loaded: data/ie.yaml
|
6
6
|
#
|
7
|
-
# To use the definitions in this file, load
|
7
|
+
# To use the definitions in this file, load it right after you load the
|
8
8
|
# Holiday gem:
|
9
9
|
#
|
10
10
|
# require 'holidays'
|
11
11
|
# require 'holidays/ie'
|
12
12
|
#
|
13
|
-
#
|
13
|
+
# All the definitions are available at https://github.com/alexdunae/holidays
|
14
14
|
module IE # :nodoc:
|
15
|
-
|
15
|
+
def self.defined_regions
|
16
|
+
[:ie]
|
17
|
+
end
|
16
18
|
|
17
|
-
|
19
|
+
def self.holidays_by_month
|
20
|
+
{
|
21
|
+
0 => [{:function => lambda { |year| Holidays.easter(year)+1 }, :function_id => "easter(year)+1", :name => "Easter Monday", :regions => [:ie]}],
|
22
|
+
1 => [{:mday => 1, :name => "New Year's Day", :regions => [:ie]}],
|
23
|
+
3 => [{:mday => 17, :name => "St. Patrick's Day", :regions => [:ie]}],
|
18
24
|
5 => [{:wday => 1, :week => 1, :name => "May Day", :regions => [:ie]}],
|
19
|
-
0 => [{:function => lambda { |year| Holidays.easter(year)+1 }, :function_id => "easter(year)+1", :name => "Easter Monday", :regions => [:ie]}],
|
20
25
|
6 => [{:wday => 1, :week => 1, :name => "Bank Holiday", :regions => [:ie]}],
|
21
|
-
1 => [{:mday => 1, :name => "New Year's Day", :regions => [:ie]}],
|
22
|
-
12 => [{:mday => 25, :name => "Christmas Day", :regions => [:ie]},
|
23
|
-
{:mday => 26, :name => "St. Stephen's Day", :regions => [:ie]}],
|
24
26
|
8 => [{:wday => 1, :week => 1, :name => "Bank Holiday", :regions => [:ie]}],
|
25
|
-
|
26
|
-
|
27
|
-
|
27
|
+
10 => [{:wday => 1, :week => -1, :name => "Bank Holiday", :regions => [:ie]}],
|
28
|
+
12 => [{:mday => 25, :name => "Christmas Day", :regions => [:ie]},
|
29
|
+
{:mday => 26, :name => "St. Stephen's Day", :regions => [:ie]}]
|
30
|
+
}
|
31
|
+
end
|
28
32
|
end
|
29
33
|
|
30
34
|
|
31
35
|
end
|
32
36
|
|
33
|
-
Holidays.merge_defs(Holidays::IE
|
37
|
+
Holidays.merge_defs(Holidays::IE.defined_regions, Holidays::IE.holidays_by_month)
|
data/lib/holidays/is.rb
CHANGED
@@ -1,23 +1,24 @@
|
|
1
1
|
# encoding: utf-8
|
2
2
|
module Holidays
|
3
|
-
# This file is generated by the Ruby
|
3
|
+
# This file is generated by the Ruby Holidays gem.
|
4
4
|
#
|
5
5
|
# Definitions loaded: data/is.yaml
|
6
6
|
#
|
7
|
-
# To use the definitions in this file, load
|
7
|
+
# To use the definitions in this file, load it right after you load the
|
8
8
|
# Holiday gem:
|
9
9
|
#
|
10
10
|
# require 'holidays'
|
11
11
|
# require 'holidays/is'
|
12
12
|
#
|
13
|
-
#
|
13
|
+
# All the definitions are available at https://github.com/alexdunae/holidays
|
14
14
|
module IS # :nodoc:
|
15
|
-
|
15
|
+
def self.defined_regions
|
16
|
+
[:is]
|
17
|
+
end
|
16
18
|
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
0 => [{:function => lambda { |year| Holidays.easter(year)-48 }, :function_id => "easter(year)-48", :name => "Bolludagur", :regions => [:is]},
|
19
|
+
def self.holidays_by_month
|
20
|
+
{
|
21
|
+
0 => [{:function => lambda { |year| Holidays.easter(year)-48 }, :function_id => "easter(year)-48", :name => "Bolludagur", :regions => [:is]},
|
21
22
|
{:function => lambda { |year| Holidays.easter(year)-47 }, :function_id => "easter(year)-47", :name => "Sprengidagur", :regions => [:is]},
|
22
23
|
{:function => lambda { |year| Holidays.easter(year)-46 }, :function_id => "easter(year)-46", :name => "Öskudagur", :regions => [:is]},
|
23
24
|
{:function => lambda { |year| Holidays.easter(year)-7 }, :function_id => "easter(year)-7", :name => "Pálmasunnudagur", :regions => [:is]},
|
@@ -28,20 +29,23 @@ module Holidays
|
|
28
29
|
{:function => lambda { |year| Holidays.easter(year)+39 }, :function_id => "easter(year)+39", :name => "Uppstigningardagur", :regions => [:is]},
|
29
30
|
{:function => lambda { |year| Holidays.easter(year)+49 }, :function_id => "easter(year)+49", :name => "Hvítasunnudagur", :regions => [:is]},
|
30
31
|
{:function => lambda { |year| Holidays.easter(year)+50 }, :function_id => "easter(year)+50", :name => "Annar í hvítasunnu", :regions => [:is]}],
|
31
|
-
11 => [{:mday => 16, :name => "Dagur íslenskrar tungu", :regions => [:is]}],
|
32
|
-
6 => [{:mday => 3, :type => :informal, :name => "Sjómannadagurinn", :regions => [:is]},
|
33
|
-
{:mday => 17, :name => "Lýðveldisdagurinn", :regions => [:is]}],
|
34
32
|
1 => [{:mday => 1, :name => "Nýársdagur", :regions => [:is]},
|
35
33
|
{:mday => 6, :name => "Þrettándinn", :regions => [:is]},
|
36
34
|
{:mday => 19, :type => :informal, :name => "Bóndadagur", :regions => [:is]}],
|
35
|
+
2 => [{:mday => 18, :type => :informal, :name => "Konudagur", :regions => [:is]}],
|
36
|
+
4 => [{:function => lambda { |year| Holidays.is_sumardagurinn_fyrsti(year) }, :function_id => "is_sumardagurinn_fyrsti(year)", :name => "Sumardagurinn fyrsti", :regions => [:is]}],
|
37
|
+
5 => [{:mday => 1, :name => "Verkalýðsdagurinn", :regions => [:is]},
|
38
|
+
{:mday => 13, :name => "Mæðradagurinn", :regions => [:is]}],
|
39
|
+
6 => [{:mday => 3, :type => :informal, :name => "Sjómannadagurinn", :regions => [:is]},
|
40
|
+
{:mday => 17, :name => "Lýðveldisdagurinn", :regions => [:is]}],
|
41
|
+
8 => [{:wday => 1, :week => 1, :name => "Frídagur verslunarmanna", :regions => [:is]}],
|
42
|
+
11 => [{:mday => 16, :name => "Dagur íslenskrar tungu", :regions => [:is]}],
|
37
43
|
12 => [{:mday => 24, :name => "Jól", :regions => [:is]},
|
38
44
|
{:mday => 25, :name => "Jól", :regions => [:is]},
|
39
45
|
{:mday => 26, :name => "Jól", :regions => [:is]},
|
40
|
-
{:mday => 31, :name => "Gamlárskvöld", :regions => [:is]}]
|
41
|
-
|
42
|
-
|
43
|
-
4 => [{:function => lambda { |year| Holidays.is_sumardagurinn_fyrsti(year) }, :function_id => "is_sumardagurinn_fyrsti(year)", :name => "Sumardagurinn fyrsti", :regions => [:is]}]
|
44
|
-
}
|
46
|
+
{:mday => 31, :name => "Gamlárskvöld", :regions => [:is]}]
|
47
|
+
}
|
48
|
+
end
|
45
49
|
end
|
46
50
|
|
47
51
|
# Iceland: first day of summer (Thursday after 18 April)
|
@@ -59,4 +63,4 @@ end
|
|
59
63
|
|
60
64
|
end
|
61
65
|
|
62
|
-
Holidays.merge_defs(Holidays::IS
|
66
|
+
Holidays.merge_defs(Holidays::IS.defined_regions, Holidays::IS.holidays_by_month)
|
data/lib/holidays/it.rb
CHANGED
@@ -1,36 +1,40 @@
|
|
1
1
|
# encoding: utf-8
|
2
2
|
module Holidays
|
3
|
-
# This file is generated by the Ruby
|
3
|
+
# This file is generated by the Ruby Holidays gem.
|
4
4
|
#
|
5
5
|
# Definitions loaded: data/it.yaml
|
6
6
|
#
|
7
|
-
# To use the definitions in this file, load
|
7
|
+
# To use the definitions in this file, load it right after you load the
|
8
8
|
# Holiday gem:
|
9
9
|
#
|
10
10
|
# require 'holidays'
|
11
11
|
# require 'holidays/it'
|
12
12
|
#
|
13
|
-
#
|
13
|
+
# All the definitions are available at https://github.com/alexdunae/holidays
|
14
14
|
module IT # :nodoc:
|
15
|
-
|
15
|
+
def self.defined_regions
|
16
|
+
[:it]
|
17
|
+
end
|
16
18
|
|
17
|
-
|
18
|
-
|
19
|
-
|
19
|
+
def self.holidays_by_month
|
20
|
+
{
|
21
|
+
0 => [{:function => lambda { |year| Holidays.easter(year) }, :function_id => "easter(year)", :name => "Pasqua", :regions => [:it]},
|
20
22
|
{:function => lambda { |year| Holidays.easter(year)+1 }, :function_id => "easter(year)+1", :name => "Lunedì dell'Angelo", :regions => [:it]}],
|
21
|
-
11 => [{:mday => 1, :name => "Ognissanti", :regions => [:it]}],
|
22
|
-
6 => [{:mday => 2, :name => "Festa della Repubblica", :regions => [:it]}],
|
23
23
|
1 => [{:mday => 1, :name => "Capodanno", :regions => [:it]},
|
24
24
|
{:mday => 6, :name => "Epifania", :regions => [:it]}],
|
25
|
+
4 => [{:mday => 25, :name => "Festa della Liberazione", :regions => [:it]}],
|
26
|
+
5 => [{:mday => 1, :name => "Festa dei Lavoratori", :regions => [:it]}],
|
27
|
+
6 => [{:mday => 2, :name => "Festa della Repubblica", :regions => [:it]}],
|
28
|
+
8 => [{:mday => 15, :name => "Assunzione", :regions => [:it]}],
|
29
|
+
11 => [{:mday => 1, :name => "Ognissanti", :regions => [:it]}],
|
25
30
|
12 => [{:mday => 8, :name => "Immacolata Concezione", :regions => [:it]},
|
26
31
|
{:mday => 25, :name => "Natale", :regions => [:it]},
|
27
|
-
{:mday => 26, :name => "Santo Stefano", :regions => [:it]}]
|
28
|
-
|
29
|
-
|
30
|
-
}
|
32
|
+
{:mday => 26, :name => "Santo Stefano", :regions => [:it]}]
|
33
|
+
}
|
34
|
+
end
|
31
35
|
end
|
32
36
|
|
33
37
|
|
34
38
|
end
|
35
39
|
|
36
|
-
Holidays.merge_defs(Holidays::IT
|
40
|
+
Holidays.merge_defs(Holidays::IT.defined_regions, Holidays::IT.holidays_by_month)
|
data/lib/holidays/jp.rb
CHANGED
@@ -1,59 +1,72 @@
|
|
1
1
|
# encoding: utf-8
|
2
2
|
module Holidays
|
3
|
-
# This file is generated by the Ruby
|
3
|
+
# This file is generated by the Ruby Holidays gem.
|
4
4
|
#
|
5
5
|
# Definitions loaded: data/jp.yaml
|
6
6
|
#
|
7
|
-
# To use the definitions in this file, load
|
7
|
+
# To use the definitions in this file, load it right after you load the
|
8
8
|
# Holiday gem:
|
9
9
|
#
|
10
10
|
# require 'holidays'
|
11
11
|
# require 'holidays/jp'
|
12
12
|
#
|
13
|
-
#
|
13
|
+
# All the definitions are available at https://github.com/alexdunae/holidays
|
14
14
|
module JP # :nodoc:
|
15
|
-
|
15
|
+
def self.defined_regions
|
16
|
+
[:jp]
|
17
|
+
end
|
16
18
|
|
17
|
-
|
19
|
+
def self.holidays_by_month
|
20
|
+
{
|
21
|
+
1 => [{:mday => 1, :name => "元日", :regions => [:jp]},
|
22
|
+
{:wday => 1, :week => 2, :name => "成人の日", :regions => [:jp]}],
|
23
|
+
2 => [{:mday => 11, :name => "建国記念日", :regions => [:jp]},
|
24
|
+
{:function => lambda { |year| Holidays.jp_substitute_holiday(year, 2, 11) }, :function_id => "jp_substitute_holiday(year, 2, 11)", :name => "振替休日", :regions => [:jp]}],
|
25
|
+
3 => [{:function => lambda { |year| Holidays.jp_vernal_equinox_day(year) }, :function_id => "jp_vernal_equinox_day(year)", :name => "春分の日", :regions => [:jp]},
|
26
|
+
{:function => lambda { |year| Holidays.jp_substitute_holiday(Holidays.jp_vernal_equinox_day(year)) }, :function_id => "jp_substitute_holiday(Holidays.jp_vernal_equinox_day(year))", :name => "振替休日", :regions => [:jp]}],
|
27
|
+
4 => [{:mday => 29, :name => "昭和の日", :regions => [:jp]},
|
28
|
+
{:function => lambda { |year| Holidays.jp_substitute_holiday(year, 4, 29) }, :function_id => "jp_substitute_holiday(year, 4, 29)", :name => "振替休日", :regions => [:jp]}],
|
18
29
|
5 => [{:mday => 3, :name => "憲法記念日", :regions => [:jp]},
|
19
30
|
{:mday => 4, :name => "みどりの日", :regions => [:jp]},
|
20
31
|
{:mday => 5, :name => "こどもの日", :regions => [:jp]},
|
21
32
|
{:function => lambda { |year| Holidays.jp_substitute_holiday(year, 5, 3) }, :function_id => "jp_substitute_holiday(year, 5, 3)", :name => "振替休日", :regions => [:jp]},
|
22
33
|
{:function => lambda { |year| Holidays.jp_substitute_holiday(year, 5, 5) }, :function_id => "jp_substitute_holiday(year, 5, 5)", :name => "振替休日", :regions => [:jp]}],
|
23
|
-
11 => [{:mday => 3, :name => "文化の日", :regions => [:jp]},
|
24
|
-
{:function => lambda { |year| Holidays.jp_substitute_holiday(year, 11, 3) }, :function_id => "jp_substitute_holiday(year, 11, 3)", :name => "振替休日", :regions => [:jp]},
|
25
|
-
{:mday => 23, :name => "勤労感謝の日", :regions => [:jp]},
|
26
|
-
{:function => lambda { |year| Holidays.jp_substitute_holiday(year, 11, 23) }, :function_id => "jp_substitute_holiday(year, 11, 23)", :name => "振替休日", :regions => [:jp]}],
|
27
|
-
1 => [{:mday => 1, :name => "元日", :regions => [:jp]},
|
28
|
-
{:wday => 1, :week => 2, :name => "成人の日", :regions => [:jp]}],
|
29
|
-
12 => [{:mday => 23, :name => "天皇誕生日", :regions => [:jp]},
|
30
|
-
{:function => lambda { |year| Holidays.jp_substitute_holiday(year, 12, 23) }, :function_id => "jp_substitute_holiday(year, 12, 23)", :name => "振替休日", :regions => [:jp]}],
|
31
34
|
7 => [{:wday => 1, :week => 3, :name => "海の日", :regions => [:jp]},
|
32
35
|
{:function => lambda { |year| Holidays.jp_substitute_holiday(year, 7, Date.calculate_mday(year, 7, 3, 1)) }, :function_id => "jp_substitute_holiday(year, 7, Date.calculate_mday(year, 7, 3, 1))", :name => "振替休日", :regions => [:jp]}],
|
33
|
-
2 => [{:mday => 11, :name => "建国記念日", :regions => [:jp]},
|
34
|
-
{:function => lambda { |year| Holidays.jp_substitute_holiday(year, 2, 11) }, :function_id => "jp_substitute_holiday(year, 2, 11)", :name => "振替休日", :regions => [:jp]}],
|
35
|
-
3 => [{:function => lambda { |year| Holidays.jp_vernal_equinox_day(year) }, :function_id => "jp_vernal_equinox_day(year)", :name => "春分の日", :regions => [:jp]},
|
36
|
-
{:function => lambda { |year| Holidays.jp_substitute_holiday(Holidays.jp_vernal_equinox_day(year)) }, :function_id => "jp_substitute_holiday(Holidays.jp_vernal_equinox_day(year))", :name => "振替休日", :regions => [:jp]}],
|
37
36
|
9 => [{:wday => 1, :week => 3, :name => "敬老の日", :regions => [:jp]},
|
38
37
|
{:function => lambda { |year| Holidays.jp_substitute_holiday(year, 9, Date.calculate_mday(year, 9, 3, 1)) }, :function_id => "jp_substitute_holiday(year, 9, Date.calculate_mday(year, 9, 3, 1))", :name => "振替休日", :regions => [:jp]},
|
39
38
|
{:function => lambda { |year| Holidays.jp_citizons_holiday(year) }, :function_id => "jp_citizons_holiday(year)", :name => "国民の休日", :regions => [:jp]},
|
40
39
|
{:function => lambda { |year| Holidays.jp_national_culture_day(year) }, :function_id => "jp_national_culture_day(year)", :name => "秋分の日", :regions => [:jp]},
|
41
40
|
{:function => lambda { |year| Holidays.jp_substitute_holiday(Holidays.jp_national_culture_day(year)) }, :function_id => "jp_substitute_holiday(Holidays.jp_national_culture_day(year))", :name => "振替休日", :regions => [:jp]}],
|
42
|
-
4 => [{:mday => 29, :name => "昭和の日", :regions => [:jp]},
|
43
|
-
{:function => lambda { |year| Holidays.jp_substitute_holiday(year, 4, 29) }, :function_id => "jp_substitute_holiday(year, 4, 29)", :name => "振替休日", :regions => [:jp]}],
|
44
41
|
10 => [{:wday => 1, :week => 2, :name => "体育の日", :regions => [:jp]},
|
45
|
-
{:function => lambda { |year| Holidays.jp_substitute_holiday(year, 10, Date.calculate_mday(year, 10, 2, 1)) }, :function_id => "jp_substitute_holiday(year, 10, Date.calculate_mday(year, 10, 2, 1))", :name => "振替休日", :regions => [:jp]}]
|
46
|
-
|
42
|
+
{:function => lambda { |year| Holidays.jp_substitute_holiday(year, 10, Date.calculate_mday(year, 10, 2, 1)) }, :function_id => "jp_substitute_holiday(year, 10, Date.calculate_mday(year, 10, 2, 1))", :name => "振替休日", :regions => [:jp]}],
|
43
|
+
11 => [{:mday => 3, :name => "文化の日", :regions => [:jp]},
|
44
|
+
{:function => lambda { |year| Holidays.jp_substitute_holiday(year, 11, 3) }, :function_id => "jp_substitute_holiday(year, 11, 3)", :name => "振替休日", :regions => [:jp]},
|
45
|
+
{:mday => 23, :name => "勤労感謝の日", :regions => [:jp]},
|
46
|
+
{:function => lambda { |year| Holidays.jp_substitute_holiday(year, 11, 23) }, :function_id => "jp_substitute_holiday(year, 11, 23)", :name => "振替休日", :regions => [:jp]}],
|
47
|
+
12 => [{:mday => 23, :name => "天皇誕生日", :regions => [:jp]},
|
48
|
+
{:function => lambda { |year| Holidays.jp_substitute_holiday(year, 12, 23) }, :function_id => "jp_substitute_holiday(year, 12, 23)", :name => "振替休日", :regions => [:jp]}]
|
49
|
+
}
|
50
|
+
end
|
47
51
|
end
|
48
52
|
|
49
|
-
def self.
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
53
|
+
def self.jp_vernal_equinox_day(year)
|
54
|
+
day =
|
55
|
+
case year
|
56
|
+
when 1851..1899
|
57
|
+
19.8277
|
58
|
+
when 1900..1979
|
59
|
+
20.8357
|
60
|
+
when 1980..2099
|
61
|
+
20.8431
|
62
|
+
when 2100..2150
|
63
|
+
21.8510
|
64
|
+
else
|
65
|
+
raise IndexError.new("Out of range")
|
66
|
+
end
|
67
|
+
day += 0.242194 * (year - 1980) - ((year - 1980)/4).floor
|
68
|
+
day = day.floor
|
69
|
+
Date.civil(year, 3, day)
|
57
70
|
end
|
58
71
|
|
59
72
|
|
@@ -77,33 +90,24 @@ def self.jp_national_culture_day(year)
|
|
77
90
|
end
|
78
91
|
|
79
92
|
|
80
|
-
def self.
|
81
|
-
|
82
|
-
|
93
|
+
def self.jp_citizons_holiday(year)
|
94
|
+
year < 2003 and return nil
|
95
|
+
ncd = Holidays.jp_national_culture_day(year)
|
96
|
+
if ncd.wday == 3
|
97
|
+
ncd - 1
|
98
|
+
else
|
99
|
+
nil
|
100
|
+
end
|
83
101
|
end
|
84
102
|
|
85
103
|
|
86
|
-
def self.
|
87
|
-
|
88
|
-
|
89
|
-
when 1851..1899
|
90
|
-
19.8277
|
91
|
-
when 1900..1979
|
92
|
-
20.8357
|
93
|
-
when 1980..2099
|
94
|
-
20.8431
|
95
|
-
when 2100..2150
|
96
|
-
21.8510
|
97
|
-
else
|
98
|
-
raise IndexError.new("Out of range")
|
99
|
-
end
|
100
|
-
day += 0.242194 * (year - 1980) - ((year - 1980)/4).floor
|
101
|
-
day = day.floor
|
102
|
-
Date.civil(year, 3, day)
|
104
|
+
def self.jp_substitute_holiday(*date)
|
105
|
+
date = date[0].kind_of?(Date) ? date.first : Date.civil(*date)
|
106
|
+
date.wday == 0 ? date+1 : nil
|
103
107
|
end
|
104
108
|
|
105
109
|
|
106
110
|
|
107
111
|
end
|
108
112
|
|
109
|
-
Holidays.merge_defs(Holidays::JP
|
113
|
+
Holidays.merge_defs(Holidays::JP.defined_regions, Holidays::JP.holidays_by_month)
|