in reply to Date::Calc / Delta_YMD funkyness?
Even taking absolute values, however, this is still sort of worthless because it lacks accountability for months with differing day counts, etc. The real way to do it is subtract your seconds since epoch and work back to YMD from the result.
Here's an example using Time::Piece and Time::Seconds:
#!/usr/bin/perl use Time::Piece; use Time::Seconds; $bd_time = Time::Piece->strptime("1973/07/19", "%Y/%m/%d"); $now = localtime(time); $diff = $now - $bd_time; $years = int($diff->years); $diff -= $years * ONE_YEAR; $months = int($diff->months); $diff -= $months * ONE_MONTH; $days = int($diff->days); print "$years years, $months months, $days days\n";
Today that yields 29 years, 1 month, 17 days. Use Lingua::EN::Inflect to season your output. Serves 4.
Matt
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: Re: Date::Calc / Delta_YMD funkyness?
by jk2addict (Chaplain) on Sep 04, 2002 at 23:52 UTC |