Как я могу найти следующую дату с использованием Perl? - PullRequest
5 голосов
/ 15 февраля 2012

Мне нужно найти следующую дату любой даты.

use strict;

my $entered_date="2011-11-30";

В приведенном выше коде я хочу найти следующую дату даты, которая хранится в переменной $ enter_date ... Пожалуйста, поделитесь своими решениями ....

Заранее спасибо...

Ответы [ 4 ]

6 голосов
/ 15 февраля 2012
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");

[править: изменено %F на %Y-%m-%d для совместимости с Wintendo.Спасибо, @bvr]

4 голосов
/ 15 февраля 2012
use Date::Simple;

my $date = Date::Simple->new($entered_date);

$date++;

print $date;

Форматы, понятные new (), описаны в конструкторах

4 голосов
/ 15 февраля 2012
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

2 голосов
/ 15 февраля 2012
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;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...