I’d like to get a person’s age from its birthday. now - birthday / 365 doesn’t work, because some years have 366 days. I came up with the following code:
now = Date.today
year = now.year - birth_date.year
if (date+year.year) > now
year = year - 1
end
Is there a more Ruby’ish way to calculate age?
I know I’m late to the party here, but the accepted answer will break horribly when trying to work out the age of someone born on the 29th February on a leap year. This is because the call to
birthday.to_date.change(:year => now.year)creates an invalid date.I used the following code instead: