The interface is indeed odd, but you do get used to it rather quickly. And the module does what it set out to do. I use it a lot, but I do not use it exclusively, so it's worth checking out the competition.

This module does most of what I need, and it isn't terrible at it. It's just strange. It has a somewhat clunky interface (Nth_Weekday_of_Month_Year is too long for a sub name) and often strikes me as providing strange ways of solving its problems. Hopefully DateTime will obsolete Date::Calc.

This module is good at what it does, but it might not do everything you need (timezones, for example). The interface is rather awkward, as multiple operations require you to sling around many parameters, because the functions return list of values (like year, month, day) which you have to track.

The docs for the main portion of the code, Date::Calc, are complete and relatively easy to read, but the docs for Date::Calc::Object are somewhat confusing.

Fast and useful module. I really like that it does not try impose
a slow OO interface on stuff that does not need it. I would have
liked it even better if the function names did not upcase each word
and if the synopsis section of the documentation was shorter.