http://www.perlmonks.org?node_id=10111


in reply to Calculating a persons age based on their birthday.

If all you want is the "year value" of a person's age, you
could divide by 365, after you added one to the number
of days for each of the leap years since the person's birth.
You could calculate this offset by subtracting their
birth year from the current year and dividing the result by
four. This works becuase they can't have been born both
before and after Feb 29th. Something like:
use integer; #...code ommited; obtain $days from FROM_DAYS() # and $birth_year from database my $this_year; my @time; my $raw_years; my $num_leaps; my $int_years; my $float_years; @time = localtime(time); $this_year = $time[5] + 1900; $raw_years = $this_year - $birth_year; $num_leaps = $raw_years / 4; $days += $num_leaps; $int_years = $days / 365; no integer; $float_years = $days / 365; if ($int_years == $float_years) { print "Today's your birthday!"; } #...Then do whatever else you're going to do
I used a few more variable declarations than I would normally
but I wanted to clarify what I was doing. It's
quick and dirty, but probably works...
Simplicus