我需要找到任何日期的下一個日期。如何使用perl查找給定日期的下一個日期?
use strict;
my $entered_date="2011-11-30";
在上面的代碼中,我想找到的日期,它存儲在$ entered_date變量的下一個日期......請分享您的解決方案....
在此先感謝...
我需要找到任何日期的下一個日期。如何使用perl查找給定日期的下一個日期?
use strict;
my $entered_date="2011-11-30";
在上面的代碼中,我想找到的日期,它存儲在$ entered_date變量的下一個日期......請分享您的解決方案....
在此先感謝...
perl -MDate::Calc -E ' use Date::Calc qw(Add_Delta_Days);say join "-", Add_Delta_Days(2011,11,30,1);'
2011-12-1
在腳本(不是很安全)
use Date::Calc qw(Add_Delta_Days);
my $entered_date = "2011-12-31";
print join "-", Add_Delta_Days(split(/-/,$entered_date),1);'
2012-1-1
use Time::Piece;
use Time::Seconds;
my $date = Time::Piece->strptime($entered_date, "%Y-%m-%d");
$date += ONE_DAY;
return $date->strftime("%Y-%m-%d");
Wintendo兼容性[編輯:更改%F
到%Y-%m-%d
。謝謝,@bvr]
嗨,我m在Windows操作系統下工作。上面的代碼不會返回任何值。我需要更改日期格式爲$ entered_date =「2011-11-30」 – Madhan 2012-02-15 13:01:22
代碼是正確的。 http://ideone.com/kiioD – 2012-02-15 13:07:05
(它顯然需要Time :: Piece,但是因爲它是Perl> = 5.10中的核心模塊,所以不應該成爲問題)。 – 2012-02-15 13:12:58
use Date::Simple;
my $date = Date::Simple->new($entered_date);
$date++;
print $date;
通過新的()被描述under constructors
理解的格式可能應該提及這不是標準Perl,而是使用第三方CPAN模塊,對任何嘗試使用它的代碼引入進一步的依賴關係。 – tchrist 2012-02-15 14:29:48
use strict;
use DateTime::Format::Flexible;
my $entered_date = "2011-11-30";
my $dt = DateTime::Format::Flexible->parse_datetime($entered_date);
print $dt->add(days => 1)->ymd;
你爲什麼說你的腳本不安全? – Borodin 2012-02-15 15:06:53
@Borodin - 沒有輸入驗證,沒有嚴格的,沒有警告,沒有檢查從呼叫返回split()...只是說''。 – knb 2012-02-15 15:28:23
啊好的,所以它不會比你的一行內容更不安全,這是我推斷的。 – Borodin 2012-02-15 21:54:36