Module: Increments::Schedule
- Extended by:
- Schedule
- Included in:
- Schedule
- Defined in:
- lib/increments/schedule.rb,
lib/increments/schedule/version.rb
Defined Under Namespace
Classes: ExtendedDate
Constant Summary collapse
- VERSION =
'0.14.0'
Instance Method Summary collapse
- #foundation_anniversary?(date = Date.today) ⇒ Boolean
- #holiday?(date = Date.today) ⇒ Boolean
- #pay_day?(date = Date.today) ⇒ Boolean
- #rest_day?(date = Date.today) ⇒ Boolean
- #super_hanakin?(date = Date.today) ⇒ Boolean
- #weekend?(date = Date.today) ⇒ Boolean
- #winter_vacation?(date = Date.today) ⇒ Boolean
- #work_day?(date = Date.today) ⇒ Boolean
Instance Method Details
#foundation_anniversary?(date = Date.today) ⇒ Boolean
8 9 10 |
# File 'lib/increments/schedule.rb', line 8 def foundation_anniversary?(date = Date.today) date.month == 2 && date.day == 29 end |
#holiday?(date = Date.today) ⇒ Boolean
38 39 40 |
# File 'lib/increments/schedule.rb', line 38 def holiday?(date = Date.today) HolidayJapan.check(date) end |
#pay_day?(date = Date.today) ⇒ Boolean
16 17 18 19 20 21 22 23 24 |
# File 'lib/increments/schedule.rb', line 16 def pay_day?(date = Date.today) return work_day?(date) if date.day == 25 return false if rest_day?(date) next_basic_pay_day = Date.new(date.year, date.month, 25) next_basic_pay_day = next_basic_pay_day.next_month if date > next_basic_pay_day date.next_day.upto(next_basic_pay_day).all? do |date_until_basic_pay_day| rest_day?(date_until_basic_pay_day) end end |
#rest_day?(date = Date.today) ⇒ Boolean
30 31 32 |
# File 'lib/increments/schedule.rb', line 30 def rest_day?(date = Date.today) weekend?(date) || holiday?(date) || winter_vacation?(date) end |
#super_hanakin?(date = Date.today) ⇒ Boolean
12 13 14 |
# File 'lib/increments/schedule.rb', line 12 def super_hanakin?(date = Date.today) date.friday? && pay_day?(date) end |
#weekend?(date = Date.today) ⇒ Boolean
34 35 36 |
# File 'lib/increments/schedule.rb', line 34 def weekend?(date = Date.today) date.saturday? || date.sunday? end |
#winter_vacation?(date = Date.today) ⇒ Boolean
42 43 44 45 46 47 48 49 50 51 52 53 |
# File 'lib/increments/schedule.rb', line 42 def winter_vacation?(date = Date.today) case date.month when 1 return true if date.day <= 3 date <= ExtendedDate.new(date.year, 1, 1).find_next(&:sunday?) when 12 return true if date.day >= 28 date >= ExtendedDate.new(date.year, 12, 31).find_previous(&:saturday?) else false end end |
#work_day?(date = Date.today) ⇒ Boolean
26 27 28 |
# File 'lib/increments/schedule.rb', line 26 def work_day?(date = Date.today) !rest_day?(date) end |