holiday_japan 1.1.0 → 1.2.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.
Files changed (4) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +45 -35
  3. data/lib/holiday_japan.rb +26 -2
  4. metadata +3 -4
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 2105a9ddbfa397b697e57d61ddf5e22e8a6df3b2
4
- data.tar.gz: 0dd34389a1f2f52e5c9fb4fe9a621f2f0aef16c2
3
+ metadata.gz: 7235f35a33ef41c4c321e5b1c6474b366dc52523
4
+ data.tar.gz: cd51c67628ce7ea70154a706ee263a8cee09f036
5
5
  SHA512:
6
- metadata.gz: adaa5333ad5a9160cc9485321bbe9c5a56b3915d1fa82c488f34c35147565bef4e7581fb9f9d12a5d18cb6115d98ac7c196c3d96bca37e10c9d3516f73244bbb
7
- data.tar.gz: 99e7df5fedc7139e0b21f9ebc51f00c454d5503602d2184a9bd7c734d27267bc2b214317e702cc692912b7d5d462a1691e111395049264eb87fa05834e1d66f8
6
+ metadata.gz: 794471013ddaa254b4198254655b931af967262bd89cab8c72d7578f6d06acbac4cda960e64462665635fe5e76848a16acec09f99a426e6fac13e53245ac629b
7
+ data.tar.gz: 02ac427351b1556ec49ed032e392be247819a38d3176b0ef16d7c5b024ff17936557007b61d422f06bc2342dfd514e20d697b64ff6b9ed4ddc01610c21913db8
data/README.md CHANGED
@@ -1,84 +1,94 @@
1
1
  # 日本の祝日判定Rubyプログラム
2
2
 
3
3
  ## 特徴
4
+ * 1948年7月20日以降の日本の国民の祝日および振替などの休日を計算して判定する
5
+
4
6
  (date2 の holiday.rb と比較して)
5
7
  * 祝日をキャッシュすることにより、大量の日付について祝日判定する場合でも高速に動作
6
8
  * 祝日名を返すことが可能
7
9
  * 祝日のルールをテーブルで持つことにより、法改正による祝日変更への対応が容易
8
10
 
9
- ## Rubyスクリプトでの使い方
10
-
11
- * 準備
11
+ ## インストール
12
12
 
13
13
  * RubyGems によるインストール
14
14
 
15
15
  gem install holiday_japan
16
16
 
17
17
  * または、[holiday_japan.rb](https://github.com/masa16/holiday_japan/blob/master/lib/holiday_japan.rb)
18
- のファイルを ruby のライブラリパスに置く
19
- * 自分のスクリプトの初めに次のように書いて、 holiday_japan.rb をロードする
18
+ のスクリプトファイルを ruby のライブラリパスに置く
20
19
 
21
- require 'holiday_japan'
20
+ ## プログラムの読み込み
21
+ * 自分のスクリプトの先頭に次のように書いて、 holiday_japan.rb をロードする
22
22
 
23
- * Dateクラスのオブジェクトによる祝日判定
23
+ require 'holiday_japan'
24
24
 
25
- if HolidayJapan.check(Date.today)
26
- ...
25
+ ## module HolidayJapan
26
+ #### モジュール関数
27
27
 
28
- または
28
+ * `check(date)` ― Dateクラスのオブジェクトによる祝日判定
29
29
 
30
- if Date.today.national_holiday?
30
+ if HolidayJapan.check(Date.today)
31
31
  ...
32
32
 
33
- * 日付が祝日の場合は祝日名を返し、祝日でなければ nil を返す。
33
+ * `name(date)` ― 日付が祝日の場合は祝日名を返し、祝日でなければ nil を返す。
34
34
 
35
35
  name = HolidayJapan.name(Date.new(2007,3,22))
36
36
 
37
- * ある年について、 [日付, 祝日名] の配列を返す
37
+ * `list_year(year)` ― ある年について、 [日付, 祝日名] のArrayを返す
38
38
 
39
39
  list = HolidayJapan.list_year(2007)
40
40
 
41
- * ある年の祝日一覧をプリント
41
+ * `hash_year(year)` ― ある年について、 {日付=>祝日名} のHashを返す
42
+
43
+ list = HolidayJapan.hash_year(2007)
44
+
45
+ * `between(from_date,to_date)` ― from_date から to_date までの祝日について、
46
+ {日付=>祝日名}のHashを返す
47
+
48
+ hash = HolidayJapan.hash_between(Date.new(2014,7,1),Date.new(2015,6,30))
49
+
50
+ * `print_year(year)` ― ある年の祝日一覧をプリント
42
51
 
43
52
  HolidayJapan.print_year(2007)
44
53
 
45
54
  ## コマンドラインから祝日一覧を表示
46
55
 
47
- $ ruby holiday_japan.rb 2013
48
- listing year 2013...
49
- 2013-01-01 Tue 元日
50
- 2013-01-14 Mon 成人の日
51
- 2013-02-11 Mon 建国記念の日
52
- 2013-03-20 Wed 春分の日
53
- 2013-04-29 Mon 昭和の日
54
- 2013-05-03 Fri 憲法記念日
55
- 2013-05-04 Sat みどりの日
56
- 2013-05-05 Sun こどもの日
57
- 2013-05-06 Mon 振替休日
58
- 2013-07-15 Mon 海の日
59
- 2013-09-16 Mon 敬老の日
60
- 2013-09-23 Mon 秋分の日
61
- 2013-10-14 Mon 体育の日
62
- 2013-11-03 Sun 文化の日
63
- 2013-11-04 Mon 振替休日
64
- 2013-11-23 Sat 勤労感謝の日
65
- 2013-12-23 Mon 天皇誕生日
56
+ $ ruby -r holiday_japan -e 'HolidayJapan.print_year 2016'
57
+ listing year 2016...
58
+ 2016-01-01 Fri 元日
59
+ 2016-01-11 Mon 成人の日
60
+ 2016-02-11 Thu 建国記念の日
61
+ 2016-03-20 Sun 春分の日
62
+ 2016-03-21 Mon 振替休日
63
+ 2016-04-29 Fri 昭和の日
64
+ 2016-05-03 Tue 憲法記念日
65
+ 2016-05-04 Wed みどりの日
66
+ 2016-05-05 Thu こどもの日
67
+ 2016-07-18 Mon 海の日
68
+ 2016-08-11 Thu 山の日
69
+ 2016-09-19 Mon 敬老の日
70
+ 2016-09-22 Thu 秋分の日
71
+ 2016-10-10 Mon 体育の日
72
+ 2016-11-03 Thu 文化の日
73
+ 2016-11-23 Wed 勤労感謝の日
74
+ 2016-12-23 Fri 天皇誕生日
66
75
 
67
76
  ## 祝日データ
68
77
 
69
78
  * 1948年7月20日(祝日法発令) 以降の祝日に対応
70
- * 2015年の暦要項まで確認(法改正がない限り以降も有効)
79
+ * 2016年の[暦要項](http://eco.mtk.nao.ac.jp/koyomi/yoko/)まで確認(法改正がない限り以降も有効)
71
80
 
72
81
  ## Author:
73
82
  Masahiro TANAKA
74
83
 
75
84
  ## Copyright:
76
- (C) Copyright 2003-2013 by Masahiro TANAKA
85
+ (C) Copyright 2003-2015 by Masahiro TANAKA
77
86
  This program is free software under MIT license.
78
87
  See LICENSE.txt.
79
88
  NO WARRANTY.
80
89
 
81
90
  ## Version:
91
+ 2015-04-11 ver 1.2 hash_year, between 関数追加
82
92
  2014-05-23 ver 1.1 「山の日」追加
83
93
  2012-12-23 ver 1.0 モジュール名を Holiday から HolidayJapan に変更
84
94
  2007-08-02 ver 0.9 リファクタリング
data/lib/holiday_japan.rb CHANGED
@@ -1,12 +1,12 @@
1
1
  # -*- coding: utf-8 -*-
2
- # (C) Copyright 2003-2013 by Masahiro TANAKA
2
+ # (C) Copyright 2003-2015 by Masahiro TANAKA
3
3
  # This program is free software under MIT license.
4
4
  # NO WARRANTY.
5
5
  require "date"
6
6
 
7
7
  module HolidayJapan
8
8
 
9
- VERSION = "1.1.0"
9
+ VERSION = "1.2.0"
10
10
 
11
11
  WEEK1 = 1..7
12
12
  WEEK2 = 8..14
@@ -123,6 +123,30 @@ module HolidayJapan
123
123
  TABLE[year].sort_by{|x| x[0]}
124
124
  end
125
125
 
126
+ def hash_year(year)
127
+ TABLE[year] ||= create_table(year)
128
+ end
129
+
130
+ def between(from_date,to_date)
131
+ if from_date > to_date
132
+ raise ArgumentError, "to_date is earlier than from_date"
133
+ end
134
+ y1 = from_date.year
135
+ y2 = to_date.year
136
+ if y1 == y2
137
+ result = hash_year(y1).select{|d,n| d >= from_date && d <= to_date}
138
+ else
139
+ result = hash_year(y1).select{|d,n| d >= from_date}
140
+ y = y1 + 1
141
+ while y < y2
142
+ result.merge!(hash_year(y))
143
+ y += 1
144
+ end
145
+ hash_year(y).each{|d,n| result[d]=n if d <= to_date}
146
+ end
147
+ result
148
+ end
149
+
126
150
  def print_year(year)
127
151
  puts "listing year #{year}..."
128
152
  list_year(year).each do |y|
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: holiday_japan
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.0
4
+ version: 1.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Masahiro TANAKA
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-05-23 00:00:00.000000000 Z
11
+ date: 2015-04-11 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: Calculate National Holidays of Japan
14
14
  email:
@@ -44,9 +44,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
44
44
  version: '0'
45
45
  requirements: []
46
46
  rubyforge_project:
47
- rubygems_version: 2.2.2
47
+ rubygems_version: 2.4.5
48
48
  signing_key:
49
49
  specification_version: 4
50
50
  summary: Calculate National Holidays of Japan
51
51
  test_files: []
52
- has_rdoc: