NAME
DateTime::BusinessHours - An object that calculates business days and
hours
SYNOPSIS
my $d1 = DateTime->new( year => 2007, month => 10, day => 15 );
my $d2 = DateTime->now;
my $test = DateTime:::BusinessHours->new(
datetime1 => $d1,
datetime2 => $d2,
worktiming => [ 9, 17 ], # 9am to 5pm
# lunch from 12 to 1
# worktiming => [ [ 9, 12 ], [ 13, 17 ] ],
weekends => [ 6, 7 ], # Saturday and Sunday
holidays => [ '2007-10-31', '2007-12-24' ],
holidayfile => 'holidays.txt'
# holidayfile is a text file with each date in a new line
# in the format yyyy-mm-dd
);
# total business hours
print $test->gethours, "\n";
# total business days, based on the number of business hours in a day
print $test->getdays, "\n";
DESCRIPTION
BusinessHours a class for caculating the business hours between two
DateTime objects. It can be useful in situations like escalation where
an action has to happen after a certain number of business hours.
METHODS
new( %args )
This class method accepts the following arguments as parameters:
* datetime1 - Starting Date
* datetime2 - Ending Date
* worktiming - May be one of the following:
* An array reference with two values: starting and ending hour of
the day
* An array reference of array references. Each reference being a
slice of the 24-hour clock where business is conducted. Useful
if you want to leave a "lunch hour" out of the calculation.
Defaults to [ [ 9, 17 ] ]
* weekends - An array reference with values of the days that must be
considered as non-working in a week. Defaults to [6,7] (Saturday &
Sunday)
* holidays - An array reference with holiday dates in 'yyyy-mm-dd'
format
* holidayfile - The name of a file from which predefined holidays can
be excluded from business days/hours calculation. Defaults to no
file
calculate( )
This will force a recalculation of the business hours and days. useful
if you've changed any values (datetime1, datetime2, worktiming, etc) or
updated the holiday file
getdays( )
Returns the number of business days
gethours( )
Returns the number of business hours.
INSTALLATION
To install this module, run the following commands:
perl Makefile.PL
make
make test
make install
SUPPORT AND DOCUMENTATION
After installing, you can find documentation for this module with the
perldoc command.
perldoc DateTime::BusinessHours
You can also look for information at:
RT, CPAN's request tracker
http://rt.cpan.org/NoAuth/Bugs.html?Dist=DateTime-BusinessHours
AnnoCPAN, Annotated CPAN documentation
http://annocpan.org/dist/DateTime-BusinessHours
CPAN Ratings
http://cpanratings.perl.org/d/DateTime-BusinessHours
Search CPAN
http://search.cpan.org/dist/DateTime-BusinessHours
AUTHOR
Antano Solar John <
[email protected]>
MAINTAINER
Brian Cassidy <
[email protected]>
COPYRIGHT AND LICENSE
Copyright (c) 2007-2011 Antano Solar John, 2012 by Brian Cassidy
This library is free software; you can redistribute it and/or modify it
under the same terms as Perl itself.