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 COPYRIGHT Copyright (c) 2007 Antano Solar John. All rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. The full text of the license can be found in the LICENSE file included with this module.