module DateAndTime::Calculations

Constants

AMOUNT_DAYS_PER_YEAR
AMOUNT_MONTHS_PER_YEAR
AMOUNT_WEEKS_PER_YEAR

Public Instance Methods

days_between(date = ::Date.current) click to toggle source

Returns the number of days to given date, default to Date.current.

# File lib/general_time/core_ext/date_and_time/calculations.rb, line 8
def days_between(date = ::Date.current)
  date1, date2 = self.to_date, date.to_date

  ((date2.yday - date1.yday) + AMOUNT_DAYS_PER_YEAR * (date2.year - date1.year)).abs
end
months_between(date = ::Date.current) click to toggle source

Returns the number of months to given date, default to Date.current.

# File lib/general_time/core_ext/date_and_time/calculations.rb, line 22
def months_between(date = ::Date.current)
  date1, date2 = self.to_date, date.to_date

  ((date2.month - date1.month) + AMOUNT_MONTHS_PER_YEAR * (date2.year - date1.year)).abs
end
weeks_between(date = ::Date.current) click to toggle source

Returns the number of weeks to given date, default to Date.current.

# File lib/general_time/core_ext/date_and_time/calculations.rb, line 15
def weeks_between(date = ::Date.current)
  date1, date2 = self.to_date, date.to_date

  ((date2.cweek - date1.cweek) + AMOUNT_WEEKS_PER_YEAR * (date2.year - date1.year)).abs
end
years_between(date = ::Date.current) click to toggle source

Returns the number of years to given date, default to Date.current.

# File lib/general_time/core_ext/date_and_time/calculations.rb, line 29
def years_between(date = ::Date.current)
  date1, date2 = self.to_date, date.to_date

  (date2.year - date1.year).abs
end