Sha256: 000ebb1b529198024b09614c0fbe2c75de403d9b1fc661ffb50aad66a5b19055
Contents?: true
Size: 1.78 KB
Versions: 2
Compression:
Stored size: 1.78 KB
Contents
# -*- coding: utf-8 -*- =begin rdoc Please see README =end class Date # @return [Integer] the age in days for a given date. # # @example # # date=Date.new(1980,10,31) # date.age_in_days => 11124 # # @example 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 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 alias :age_in_days_on :age_in_days # @return [Integer] the age in years for a given date. # # @example # # y = Date.today.year # m = Date.today.month # d = Date.today.mday # date = Date.new(y - 30, m, day) # date.age_in_years => 30 # # @example 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 def age_in_years(compare_date = Date.today) (compare_date.is_a? Date) or raise ArgumentError, "compare_date must be a date" return 0 if self == compare_date age = compare_date.year - self.year min, max = [self, compare_date].sort age -= 1 if max.month < min.month or (max.month == min.month and max.day < min.day) age end alias :age_in_years_on :age_in_years end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
sixarm_ruby_date_age-2.0.0 | lib/sixarm_ruby_date_age.rb |
sixarm_ruby_date_age-1.1.3 | lib/sixarm_ruby_date_age.rb |