Madhan
Madhan

Reputation: 1321

How can I find the next date of given date using perl?

I need to find the next date of any date.

use strict;

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

In the above code I want to find the next date of the date, which stored in $entered_date variable... Please share your solutions....

Thanks in Advance...

Upvotes: 5

Views: 3955

Answers (4)

oalders
oalders

Reputation: 5279

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;

Upvotes: 2

Øyvind Skaar
Øyvind Skaar

Reputation: 2328

use Date::Simple;

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

$date++;

print $date;

The formats understood by new() is described under constructors

Upvotes: 4

al.
al.

Reputation: 717

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");

[ edit: changed %F to %Y-%m-%d for Wintendo compatibility. Thanks, @bvr ]

Upvotes: 6

knb
knb

Reputation: 9295

perl -MDate::Calc -E ' use Date::Calc qw(Add_Delta_Days);say join "-", Add_Delta_Days(2011,11,30,1);'

2011-12-1

In a script (not very safe)

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

Upvotes: 4

Related Questions