class Date
Public Class Methods
q1(year)
click to toggle source
# File lib/scheduling/regularity/quarterly.rb, line 2 def self.q1(year) Date.new(year,1) end
q2(year)
click to toggle source
# File lib/scheduling/regularity/quarterly.rb, line 6 def self.q2(year) Date.new(year,4) end
q3(year)
click to toggle source
# File lib/scheduling/regularity/quarterly.rb, line 10 def self.q3(year) Date.new(year,7) end
q4(year)
click to toggle source
# File lib/scheduling/regularity/quarterly.rb, line 14 def self.q4(year) Date.new(year,10) end
quarterly(year, quarter = 1, qday = 1)
click to toggle source
# File lib/scheduling/regularity/quarterly.rb, line 22 def self.quarterly year, quarter = 1, qday = 1 case quarter when 1 self.q1(year) + (qday - 1) when 2 self.q2(year) + (qday - 1) when 3 self.q3(year) + (qday - 1) when 4 self.q4(year) + (qday - 1) else raise ArgumentError, "quarter #{quarter} is not 1-4" end end
Public Instance Methods
next_quarter(count = 1)
click to toggle source
# File lib/scheduling/regularity/quarterly.rb, line 41 def next_quarter count = 1 raise ArgumentError, "count #{count} is < 1" if count < 1 quarter = self.quarter + count % 4 year = self.year + count / 4 if quarter > 4 year += 1 quarter = (quarter - 4) end Date.quarterly(year, quarter, self.qday) end
qday()
click to toggle source
# File lib/scheduling/regularity/quarterly.rb, line 37 def qday 1 + (self - Date.quarterly(self.year, quarter)).to_i end
quarter()
click to toggle source
# File lib/scheduling/regularity/quarterly.rb, line 18 def quarter 1 + ((month - 1) / 3) end