module TradingDayJp
Constants
- VERSION
Public Class Methods
beginning_of_month(date)
click to toggle source
# File lib/trading_day_jp.rb, line 67 def beginning_of_month(date) date = Date.new(date.year, date.month) loop do return date if date.trading_day_jp? date = date + 1 end end
beginning_of_month?(date)
click to toggle source
# File lib/trading_day_jp.rb, line 87 def beginning_of_month?(date) date == beginning_of_month(date) end
beginning_of_quarter(date)
click to toggle source
# File lib/trading_day_jp.rb, line 95 def beginning_of_quarter(date) if date.month <= 3 beginning_of_month Date.new(date.year, 1) elsif date.month <= 6 beginning_of_month Date.new(date.year, 4) elsif date.month <= 9 beginning_of_month Date.new(date.year, 7) else beginning_of_month Date.new(date.year, 10) end end
beginning_of_quarter?(date)
click to toggle source
# File lib/trading_day_jp.rb, line 119 def beginning_of_quarter?(date) date == beginning_of_quarter(date) end
beginning_of_week(date)
click to toggle source
# File lib/trading_day_jp.rb, line 35 def beginning_of_week(date) date = date - @@day_minus[date.cwday] cweek = date.cweek loop do if date.trading_day_jp? return date elsif date.cweek != cweek return end cweek = date.cweek date = date + 1 end end
beginning_of_year(date)
click to toggle source
# File lib/trading_day_jp.rb, line 127 def beginning_of_year(date) self.next(Date.new date.year) end
beginning_of_year?(date)
click to toggle source
# File lib/trading_day_jp.rb, line 135 def beginning_of_year?(date) date == beginning_of_year(date) end
between(start, last)
click to toggle source
# File lib/trading_day_jp.rb, line 29 def between(start, last) (start..last).select do |date| date.trading_day_jp? end end
end_of_month(date)
click to toggle source
# File lib/trading_day_jp.rb, line 77 def end_of_month(date) date = Date.new(date.year, date.month).next_month - 1 loop do return date if date.trading_day_jp? date = date - 1 end end
end_of_month?(date)
click to toggle source
# File lib/trading_day_jp.rb, line 91 def end_of_month?(date) date == end_of_month(date) end
end_of_quarter(date)
click to toggle source
# File lib/trading_day_jp.rb, line 107 def end_of_quarter(date) if date.month <= 3 end_of_month Date.new(date.year, 3) elsif date.month <= 6 end_of_month Date.new(date.year, 6) elsif date.month <= 9 end_of_month Date.new(date.year, 9) else end_of_month Date.new(date.year, 12) end end
end_of_quarter?(date)
click to toggle source
# File lib/trading_day_jp.rb, line 123 def end_of_quarter?(date) date == end_of_quarter(date) end
end_of_week(date)
click to toggle source
# File lib/trading_day_jp.rb, line 51 def end_of_week(date) date = date + @@day_add[date.cwday] cweek = date.cweek loop do if date.trading_day_jp? return date elsif date.cweek != cweek return end cweek = date.cweek date = date - 1 end end
end_of_year(date)
click to toggle source
# File lib/trading_day_jp.rb, line 131 def end_of_year(date) prev beginning_of_year(Date.new(date.year + 1)) end
end_of_year?(date)
click to toggle source
# File lib/trading_day_jp.rb, line 139 def end_of_year?(date) date == end_of_year(date) end
next(date)
click to toggle source
# File lib/trading_day_jp.rb, line 13 def next(date) loop do date = date + 1 return date if date.trading_day_jp? end end
open?(date)
click to toggle source
# File lib/trading_day_jp.rb, line 9 def open?(date) date.trading_day_jp? end
prev(date)
click to toggle source
# File lib/trading_day_jp.rb, line 21 def prev(date) loop do date = date - 1 return date if date.trading_day_jp? end end