Seems related to, and an extension of, Time::Duration. Perhaps you could extend that module rather than create a new one.
Enh, sorta. Most of the work of Time::Duration is figuring out how to whittle down a multiple-units expression of a time to a particular degree of concision. It also doesn't have the concept of "month". You're probably better off just starting over, since stuff like $mins = int($secs) / 60; $secs -= $mins * 60; is neither complex nor error-prone.
-- Sean M. Burke http://search.cpan.org/~sburke/