x
Solved

# Calculating Business days in Perl

Posted on 2000-04-27
Medium Priority
800 Views
Can someone please help me with the code in Perl to calculate the number of business days (excluding weekends) between two days entered by the user?
Any help would be appreciated.

Thank you.
0
Question by:lsellers

LVL 19

Expert Comment

ID: 2758123
You will need to download and install a CPAN module called Date::Manip for www.cpan.org

use Date::Manip;
\$date1=&ParseDate(\$string1);
\$date2=&ParseDate(\$string2);
\$diff=&DateCalc(\$date1,\$date2\\$err,\$mode]);

0

LVL 85

Expert Comment

ID: 2758159
You'll also need a configuration file defining your holidays.
0

LVL 3

Accepted Solution

tgoetze earned 500 total points
ID: 2758313
With no error checking and ignoring holidays, here is a solution:

\$from = "4/24/2000";
\$to = "4/27/2001";

@from = parse_date(\$_[0]);
@to = parse_date(\$_[1]);
\$days_apart = (\$to[9] - \$from[9])/(60*60*24);
if (\$from[6] > \$to[6]) {
\$days_apart -= 2 * ((int \$days_apart/7) + 1);
} else {
\$days_apart -= 2 * (int \$days_apart/7);
}
return \$days_apart;
}

sub parse_date {
my @F = split(/\//, \$_[0]);
my \$f = timelocal(0, 0, 0, \$F[1], \$F[0] - 1, \$F[2] - 1900);
return localtime(\$f), \$f;
}
0

LVL 19

Expert Comment

ID: 2763167
Date::Manip is a very comprehensive module. By using it you are making use of years of testing and development. Modules save you time by not having to reinvent the wheel.
0

Author Comment

ID: 2766416
Thank you very much!
0

## Featured Post

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.