开发者

What is the recommended way of doing date arithmetics in Perl?

开发者 https://www.devze.com 2023-01-20 03:27 出处:网络
What is the recommended way of doing date arithmetics in Perl开发者_C百科? Say for example that I want to know the date three days ago from today (where today = 2010-10-17 and today - 3 days = 2010-1

What is the recommended way of doing date arithmetics in Perl开发者_C百科?

Say for example that I want to know the date three days ago from today (where today = 2010-10-17 and today - 3 days = 2010-10-13). How would you do that in Perl?


You can use DateTime and DateTime::Duration

http://search.cpan.org/dist/DateTime/lib/DateTime/Duration.pm

Or work with unix timestamps:

my $now = time();
my $threeDaysAgo = $now - 3 * 86400;
my ($day, $mon, $year) = (localtime($threeDaysAgo))[3, 4, 5];
printf("Three days ago was %04d-%02d-%02d", $year+1900, $mon+1, $day);


See DateTime on CPAN (or here).


There are many, many different date and time manipulation modules.

These include:

  • Date::Calc - and the Add_Delta_Days function
  • Date::Manip - and the DateCalc function
  • DateTime

All of these are well thought of. There are many others in addition. A lot depends on the sort of arithmetic you want to do. DateTime is perhaps the most rigorous, but Date::Calc and Date::Manip may be easier to handle for the work you need.


This is by far the module with the most functionality that I've come across: Date::Manip

0

精彩评论

暂无评论...
验证码 换一张
取 消