Class: Date
- Inherits:
-
Object
- Object
- Date
- Defined in:
- lib/rails_extend/core/date.rb
Instance Method Summary collapse
-
#contract_after(*afters, less: true) ⇒ Object
Chinese custom after date '2018-01-01'.to_date.contract_after(2.month) => '2018-02-31' '2018-01-31'.to_date.contract_after(1.month) => '2018-02-28'.
- #parts ⇒ Object
Instance Method Details
#contract_after(*afters, less: true) ⇒ Object
Chinese custom after date '2018-01-01'.to_date.contract_after(2.month) => '2018-02-31' '2018-01-31'.to_date.contract_after(1.month) => '2018-02-28'
6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
# File 'lib/rails_extend/core/date.rb', line 6 def contract_after(*afters, less: true) parts = {} # todo use inject or something afters.each do |after| parts.merge! after.parts end r = ActiveSupport::Duration.new(0, parts).after(self) return r unless less # if result day less than day, so if (parts.keys & [:months, :years]).present? r.day < day ? r : r - 1 else r end end |
#parts ⇒ Object
24 25 26 27 28 29 30 |
# File 'lib/rails_extend/core/date.rb', line 24 def parts { year: year, month: month, day: day } end |