Time add in perl

Say the current datetime is 17:46:12, I got the time by using localtime(), i want to add 1 hr 30 minutes 55 seconds.
Is there a function in perl to archieve that?
matchzAsked:
Who is Participating?
 
gripeConnect With a Mentor Commented:
You can do this either by converting your time to seconds and adding the seconds to time's output. Such as:

my $future = "1:30:55";
my ($hours, $minutes, $seconds) = split(/:/, $future);

$hours *= 60 * 60;
$minutes *= 60;
$seconds += $hours + $minutes;

print scalar(localtime(time + $seconds));

Or there are also some modules available to do this for you. Notably there's Date::Manip:

You can do this either by converting your time to seconds and adding the seconds to time's output. Such as:

my $future = "1:30:55";
my ($hours, $minutes, $seconds) = split(/:/, $future);

$hours *= 60 * 60;
$minutes *= 60;
$seconds += $hours + $minutes;

print +(localtime(time + $seconds));

Or there are also some modules available to do this for you. Notably there's Date::Manip:

#!/usr/bin/perl

use warnings;
use strict;
use Date::Manip;

my $delta = "1:30:55";
my $date = DateCalc("now", "+ 1hour 30minutes 55seconds");

print $date;

Hope this helps.
0
 
Jay ToopsCommented:
Calculating with Epoch seconds is easiest, disregarding the effort to get dates and times into and out of Epoch seconds. This code shows how to calculate an offset (55 days, 2 hours, 17 minutes, and 5 seconds, in this case) from a given base date and time:

$birthtime = 96176750;                  # 18/Jan/1973, 3:45:50 am
$interval = 5 +                         # 5 seconds
            17 * 60 +                   # 17 minutes
            2  * 60 * 60 +              # 2 hours
            55 * 60 * 60 * 24;          # and 55 days
$then = $birthtime + $interval;
print "Then is ", scalar(localtime($then)), "\n";
Then is Wed Mar 14 06:02:55 1973

Jay
0
 
gripeCommented:
Note that the author of Date::Manip himself indicates that it's a big, slow, pure perl module and may not be suitable to all tasks. There are a number of other date manipulation modules on CPAN, but Date::Manip is the most full featured and easy to use.

YMMV
0
 
davorgCommented:
It's no longer true that Date::Manip is the most fully featured date manipulation module on CPAN. The Perl Date/Time Project (http://datetime.perl.org/) have created a set of useful modules which you should be looking at for all of your date manipulation needs.

Dave...
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.