Class: Date

Inherits:
Object
  • Object
show all
Defined in:
lib/sixarm_ruby_date_age.rb

Instance Method Summary (collapse)

Instance Method Details

- (Integer) age_in_days(compare_date = Date.today) Also known as: age_in_days_on

The age in days for a given date.

Examples:

date=Date.new(1980,10,31)
date.age_in_days => 11124

of custom dates

date=Date.new(1980,10,31)

valentines = Date.new(2011,02,14)
date.age_in_days(valentines) => 11063

halloween = Date.new(2011,10,31)
date.age_in_days(halloween) => 11322

new_years_eve = Date.new(2011,12,31)
date.age_in_days(new_years_eve) => 11383

Returns:

  • (Integer)

    the age in days for a given date.



53
54
55
56
# File 'lib/sixarm_ruby_date_age.rb', line 53

def age_in_days(compare_date=Date.today)
  (compare_date.is_a? Date) or raise ArgumentError, "compare_date must be a date"
  (compare_date-self).to_i
end

- (Integer) age_in_years(compare_date = Date.today) Also known as: age_in_years_on

The age in years for a given date.

Examples:

date=Date.new(1980,10,31)
date.age_in_years => 30

of custom dates

date=Date.new(1980,10,31)

valentines = Date.new(2011,02,14)
date.age_in_years_on(valentines) => 30  # before the birthday

halloween = Date.new(2011,10,31)
date.age_in_years_on(halloween) => 31  # on the birthday is one year older

new_years_eve = Date.new(2011,12,31)
date.age_years(new_years_eve) => 31  # after the birthday is one year older

Returns:

  • (Integer)

    the age in years for a given date.



81
82
83
84
85
86
87
# File 'lib/sixarm_ruby_date_age.rb', line 81

def age_in_years(compare_date=Date.today)
  (compare_date.is_a? Date) or raise ArgumentError, "compare_date must be a date"
  age=compare_date.year-year
  compare_month = compare_date.month
  age-=1 if compare_month < month or (compare_month==month and compare_date.day < day)
  age
end