china_holiday 1.0.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 +7 -0
- data/holidays.yml +20 -0
- data/lib/china_holiday.rb +35 -0
- data/test/holiday_test.rb +26 -0
- metadata +46 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 4e9fbd722081c458f6083eb1891deacc9a637bfd
|
4
|
+
data.tar.gz: 6920f6920a928b0cb0d23051200d18b4f1912326
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: e039cabce34d38783a01ec3503dbe5d803b5ca31e0c04a21a23d88a6000cf988668249834ada80c7dd72de7e97b224443a4e151b8cc677d9bea49ef65051cbe3
|
7
|
+
data.tar.gz: 5322968f24700256ab144552ca755755b46fc2bf7f40a389cbe9b44e0add77ea6e2e848fb46fb91d3b735a04688f6944a3ce109e62886ee899e2071aa1b34d9b
|
data/holidays.yml
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
2015-01-01: 2
|
2
|
+
2015-02-18: 2
|
3
|
+
2015-02-19: 2
|
4
|
+
2015-02-20: 2
|
5
|
+
2015-04-05: 2
|
6
|
+
2015-05-01: 2
|
7
|
+
2015-06-20: 2
|
8
|
+
2015-09-03: 2
|
9
|
+
2015-09-27: 2
|
10
|
+
2015-10-01: 2
|
11
|
+
2016-01-01: 2
|
12
|
+
2016-02-08: 2
|
13
|
+
2016-02-09: 2
|
14
|
+
2016-02-10: 2
|
15
|
+
2016-05-01: 2
|
16
|
+
2016-05-02: 2
|
17
|
+
2016-05-03: 2
|
18
|
+
2016-10-01: 2
|
19
|
+
2016-10-02: 2
|
20
|
+
2016-10-03: 2
|
@@ -0,0 +1,35 @@
|
|
1
|
+
require 'date'
|
2
|
+
require 'yaml'
|
3
|
+
|
4
|
+
class ChinaHoliday
|
5
|
+
def self.weekend?(date)
|
6
|
+
date.cwday == 6 || date.cwday == 7
|
7
|
+
end
|
8
|
+
#weekend or holiday
|
9
|
+
def self.holiday?(date)
|
10
|
+
yaml = YAML.load_file(File.expand_path('../../holidays.yml', __FILE__))
|
11
|
+
self.weekend?(date) || yaml.keys.include?(date)
|
12
|
+
end
|
13
|
+
|
14
|
+
#last work day previous given self
|
15
|
+
def self.last_work_day(date)
|
16
|
+
wday = date.cwday
|
17
|
+
friday = date.friday? ? date : date+(5-wday)
|
18
|
+
|
19
|
+
return self.last_day(friday)
|
20
|
+
end
|
21
|
+
|
22
|
+
def self.last_work_day?(date)
|
23
|
+
#code
|
24
|
+
last_work_self = self.last_work_day(date)
|
25
|
+
last_work_self == date ? true : false
|
26
|
+
end
|
27
|
+
|
28
|
+
def self.last_day(date)
|
29
|
+
if self.holiday?(date)
|
30
|
+
self.last_day(date-1)
|
31
|
+
else
|
32
|
+
return date
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
require "minitest/autorun"
|
2
|
+
require '../lib/china_holiday.rb'
|
3
|
+
|
4
|
+
class HolidayTest < Minitest::Test
|
5
|
+
|
6
|
+
def test_weekend
|
7
|
+
week_end = Date.parse('2015-12-19')
|
8
|
+
assert_equal true, ChinaHoliday.weekend?(week_end)
|
9
|
+
end
|
10
|
+
|
11
|
+
def test_not_weekend
|
12
|
+
not_week_end = Date.parse('2015-12-21')
|
13
|
+
assert_equal false, ChinaHoliday.weekend?(not_week_end)
|
14
|
+
end
|
15
|
+
|
16
|
+
def test_holiday
|
17
|
+
holiday = Date.parse('2016-1-1')
|
18
|
+
assert_equal true, ChinaHoliday.holiday?(holiday)
|
19
|
+
end
|
20
|
+
|
21
|
+
def test_not_holiday
|
22
|
+
not_holiday = Date.parse('2016-1-4')
|
23
|
+
assert_equal false, ChinaHoliday.holiday?(not_holiday)
|
24
|
+
end
|
25
|
+
|
26
|
+
end
|
metadata
ADDED
@@ -0,0 +1,46 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: china_holiday
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 1.0.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Dennis Hu
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2015-12-29 00:00:00.000000000 Z
|
12
|
+
dependencies: []
|
13
|
+
description: Gem for display holidays in China between 2012 to 2016
|
14
|
+
email: pengxing.hu@qq.com
|
15
|
+
executables: []
|
16
|
+
extensions: []
|
17
|
+
extra_rdoc_files: []
|
18
|
+
files:
|
19
|
+
- holidays.yml
|
20
|
+
- lib/china_holiday.rb
|
21
|
+
- test/holiday_test.rb
|
22
|
+
homepage: http://rubygems.org/gems/china_holiday
|
23
|
+
licenses:
|
24
|
+
- MIT
|
25
|
+
metadata: {}
|
26
|
+
post_install_message:
|
27
|
+
rdoc_options: []
|
28
|
+
require_paths:
|
29
|
+
- lib
|
30
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
31
|
+
requirements:
|
32
|
+
- - ">="
|
33
|
+
- !ruby/object:Gem::Version
|
34
|
+
version: '0'
|
35
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
36
|
+
requirements:
|
37
|
+
- - ">="
|
38
|
+
- !ruby/object:Gem::Version
|
39
|
+
version: '0'
|
40
|
+
requirements: []
|
41
|
+
rubyforge_project:
|
42
|
+
rubygems_version: 2.4.5
|
43
|
+
signing_key:
|
44
|
+
specification_version: 4
|
45
|
+
summary: China holidays
|
46
|
+
test_files: []
|