holidays 1.0.3 → 1.0.4
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.
- 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)
|