date calculation in Perl

Posted on 2007-12-05
Medium Priority
Last Modified: 2008-02-01
I have to compare two input dates format MM/DD/YYYY and calculate how many days are between both dates
For example
D1.  12/05/2007
D2.  12/04/2006

Difference is 366 days.  
Is there any subroutine that I could use ?
I tried to split the dates and do the calculations myself, but I doesn't work all the time.

Question by:oaihuynh

Assisted Solution

by:Suhas .
Suhas . earned 248 total points
ID: 20412607
use Date::Calc;

$Dd = Delta_Days($year1,$month1,$day1, $year2,$month2,$day2);

This function returns the difference in days between the two given dates.

The result is positive if the two dates are in chronological order, i.e., if date #1 comes chronologically BEFORE date #2, and negative if the order of the two dates is reversed.

The result is zero if the two dates are identical.

Author Comment

ID: 20413000
So I'm still going to have to split the date on "/" and then put them into a Month, Day, Year variable and put them in the date_delta formula. Is there no way to read in the date "9/6/1997" and have the variables automatically assigned to Month, Day, Year?
LVL 85

Expert Comment

ID: 20413168
($month,$day,$year)= split/\//,"9/6/1997"
LVL 39

Expert Comment

ID: 20415354
You could also use the Date::Manip module.  This would likely be slower though.
    $Delta = DateCalc($date1, $date2);
See here for more details: http://search.cpan.org/~sbeck/Date-Manip-5.48/Manip.pod

LVL 85

Accepted Solution

ozo earned 252 total points
ID: 20416255
use Time::Local;
my ($m1,$d1,$y1)=split/\//,"12/05/2007";
print ((timegm(0,0,12,$d1,$m1-1,$y1-1900)-timegm(0,0,12,$d2,$m2-1,$y2-1900))/(24*60*60),"\n");


Featured Post

The 14th Annual Expert Award Winners

The results are in! Meet the top members of our 2017 Expert Awards. Congratulations to all who qualified!

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.

Join & Write a Comment

On Microsoft Windows, if  when you click or type the name of a .pl file, you get an error "is not recognized as an internal or external command, operable program or batch file", then this means you do not have the .pl file extension associated with …
In the distant past (last year) I hacked together a little toy that would allow a couple of Manager types to query, preview, and extract data from a number of MongoDB instances, to their tool of choice: Excel (http://dilbert.com/strips/comic/2007-08…
Explain concepts important to validation of email addresses with regular expressions. Applies to most languages/tools that uses regular expressions. Consider email address RFCs: Look at HTML5 form input element (with type=email) regex pattern: T…
Six Sigma Control Plans

597 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question