Module: FiscalDate::ArithmeticExt
- Included in:
- FiscalDate
- Defined in:
- lib/fiscal_date/arithmetic_ext.rb
Instance Method Summary collapse
Instance Method Details
#+(quarters) ⇒ Object
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
# File 'lib/fiscal_date/arithmetic_ext.rb', line 17 def +(quarters) return self if quarters.zero? years = quarters / 4 quarters = (quarters % 4) + self.quarter # We can use modulo but we'd have to map the quarters 1-4 to 0-3, # this seemed easier. if quarters > 4 years += 1 quarters -= 4 end self.class.new(self.year + years, quarters) end |
#-(fd_or_integer) ⇒ Object
4 5 6 7 8 9 10 11 12 13 14 15 |
# File 'lib/fiscal_date/arithmetic_ext.rb', line 4 def -(fd_or_integer) case fd_or_integer when Integer self.+(-fd_or_integer) when FiscalDate year_diff = year - fd_or_integer.year quarter_diff = quarter - fd_or_integer.quarter year_diff * 4 + quarter_diff else raise(ArgumentError, "must pass an integer or another FiscalDate") end end |