http://qs321.pair.com?node_id=10002


in reply to RE: Re: Calculating a persons age based on their birthday.
in thread Calculating a persons age based on their birthday.

Date::Calc (or, heaven forbid, Date::Manip) is probably overkill since you only want age in years. All you really want to know is whether the birthday has passed this year.
sub age { # Assuming $birth_month is 0..11 my ($birth_day, $birth_month, $birth_year) = @_; my ($day, $month, $year) = (localtime)[3..5]; $year += 1900; my $age = $year - $birth_year; $age-- unless sprintf("%02d%02d", $month, $day) >= sprintf("%02d%02d", $birth_month, $birth_day); return $age; }
Of course, if you're only using this on a person's birthday, all you need to do is subtract their birth year from the current year :-)