Module: DateContinuity::TimeBetween

Extended by:
ActiveSupport::Concern
Defined in:
lib/date_continuity/time_between.rb

Instance Method Summary collapse

Instance Method Details

#months_between(date1, date2) ⇒ Object



7
8
9
10
# File 'lib/date_continuity/time_between.rb', line 7

def months_between(date1, date2)
  earlier, later = [date1, date2].sort
  (later.year - earlier.year) * 12 + later.month - earlier.month
end

#years_between(date1, date2) ⇒ Object



12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# File 'lib/date_continuity/time_between.rb', line 12

def years_between(date1, date2)
  earlier, later = [date1, date2].sort
  diff = (later.year - earlier.year)

  if earlier.month > later.month
    diff -= 1
  elsif earlier.month == later.month
    if earlier.end_of_month == earlier && later.end_of_month == later
      # no-op, account for leap years
    elsif earlier.day > later.day
      diff -= 1
    end
  end

  diff
end