print days (now - (60 * 60 * 24 * 7)) . "\n";
sub days { my ($then) = shift; my $seconds = time - $then; my $minutes = int ($seconds / 60); my $hours = int ($minutes / 60); my $days = int ($hours / 24); if ($seconds < 60) { return (sprintf "%d second%s", $seconds, $seconds == 1 ? "" : "s +"); } elsif ($minutes < 60) { return (sprintf "%d minute%s", $minutes, $minutes == 1 ? "" : "s +"); } elsif ($hours < 24) { return (sprintf "%d hour%s", $hours, $hours == 1 ? "" : "s"); } else { return (sprintf "%s day%s", &commas ($days), $days == 1 ? "" : " +s"); } }

Replies are listed 'Best First'.
Re: Pleasant date diff
by grinder (Bishop) on Mar 28, 2002 at 14:38 UTC
    See also Formatting elapsed time for a variation on the theme.

    BTW, what happened to the definition of sub commas?


    print@_{sort keys %_},$/if%_=split//,'= & *a?b:e\f/h^h!j+n,o@o;r$s-t%t#u'