Eth*_*her 10
Date::Calc 是这里的冠军模块:
use strict;
use warnings;
use Date::Calc qw(Add_Delta_YMD);
my $startDate = '2000-01-01';
my ($startYear, $startMonth, $startDay) = $startDate =~ m/(\d{4}-(\d{2})-\d{2})/;
# 1 year, 2 months, 3 days, after startDate
my $endDate = join('-', Add_Delta_YMD($startYear, $startMonth, $startDay, 1, 2, 3));
Run Code Online (Sandbox Code Playgroud)
该模块具有大量的时间转换例程,特别是那些处理增量的例程. DateTime并且Date::Manip也值得一试.
Date :: Calc可用于此类计算:
#!/usr/bin/perl
use strict;
use warnings;
use Date::Calc qw(Add_Delta_Days);
my ( $yyyy, $mm, $dd ) = ( 2009, 9, 2 );
my @date = Add_Delta_Days( $yyyy, $mm, $dd, -3 );
print join( '-', @date );
Run Code Online (Sandbox Code Playgroud)
DateTime是处理现代Perl中日期的规范方法:
use DateTime;
my ($year, $month, $day) = split '-', '2009-09-01';
my $date = DateTime->new( year => $year, month => $month, day => $day );
$date->subtract( days => 3 );
# $date is now three days earlier (2009-08-29T00:00:00)
Run Code Online (Sandbox Code Playgroud)