Class: Date
- Inherits:
-
Object
- Object
- Date
- Defined in:
- lib/scheduling/regularity/quarterly.rb
Class Method Summary collapse
- .q1(year) ⇒ Object
- .q2(year) ⇒ Object
- .q3(year) ⇒ Object
- .q4(year) ⇒ Object
- .quarterly(year, quarter = 1, qday = 1) ⇒ Object
Instance Method Summary collapse
Class Method Details
.q1(year) ⇒ Object
2 3 4 |
# File 'lib/scheduling/regularity/quarterly.rb', line 2 def self.q1(year) Date.new(year,1) end |
.q2(year) ⇒ Object
6 7 8 |
# File 'lib/scheduling/regularity/quarterly.rb', line 6 def self.q2(year) Date.new(year,4) end |
.q3(year) ⇒ Object
10 11 12 |
# File 'lib/scheduling/regularity/quarterly.rb', line 10 def self.q3(year) Date.new(year,7) end |
.q4(year) ⇒ Object
14 15 16 |
# File 'lib/scheduling/regularity/quarterly.rb', line 14 def self.q4(year) Date.new(year,10) end |
.quarterly(year, quarter = 1, qday = 1) ⇒ Object
22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
# 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 |
Instance Method Details
#next_quarter(count = 1) ⇒ Object
41 42 43 44 45 46 47 48 49 50 51 52 53 |
# 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 ⇒ Object
37 38 39 |
# File 'lib/scheduling/regularity/quarterly.rb', line 37 def qday 1 + (self - Date.quarterly(self.year, quarter)).to_i end |
#quarter ⇒ Object
18 19 20 |
# File 'lib/scheduling/regularity/quarterly.rb', line 18 def quarter 1 + ((month - 1) / 3) end |