Solved

date calculation in Perl

Posted on 2007-12-05
5
2,735 Views
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.

0
Comment
Question by:oaihuynh
5 Comments
 
LVL 9

Assisted Solution

by:Suhas .
Suhas . earned 62 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.
0
 

Author Comment

by:oaihuynh
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?
0
 
LVL 84

Expert Comment

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

Expert Comment

by:Adam314
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

0
 
LVL 84

Accepted Solution

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

0

Featured Post

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

There are many situations when we need to display the data in sorted order. For example: Student details by name or by rank or by total marks etc. If you are working on data driven based projects then you will use sorting techniques very frequently.…
Checking the Alert Log in AWS RDS Oracle can be a pain through their user interface.  I made a script to download the Alert Log, look for errors, and email me the trace files.  In this article I'll describe what I did and share my script.
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…
A company’s greatest vulnerability is their email. CEO fraud, ransomware and spear phishing attacks are the no1 threat to a company’s security. Cybercrime is responsible for the largest loss of money to companies today with losses projected to r…

914 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

Need Help in Real-Time?

Connect with top rated Experts

21 Experts available now in Live!

Get 1:1 Help Now