china_holiday 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- 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: []
|