[rt-users] Business Hours help please

Roedel, Mark MarkRoedel at letu.edu
Tue Dec 4 11:06:23 EST 2007


You don't say exactly what you're looking for as output.  As noted in
the Business::Hours documentation, for_timespan returns a Set::IntSpan,
which is what you're seeing in your dump.  Just eyeballing things, it
looks like the 'edges' array contains Unix timestamps corresponding to
the beginnings and ends of the ranges of time between your start and end
which fall within the business hours you defined.
http://search.cpan.org/dist/Set-IntSpan/IntSpan.pm has more information
on working with a Set::IntSpan.

If you're just trying to get the number of business hours that occur
within your range, Business::Hours does also have a "between" subroutine
that returns the number of business seconds between two timestamps.
(See http://search.cpan.org/dist/Business-Hours/lib/Business/Hours.pm
for full information on Business::Hours.)


--
Mark Roedel
Senior Programmer / Analyst
LeTourneau University
Longview, Texas  USA



-----Original Message-----
From: rt-users-bounces at lists.bestpractical.com
[mailto:rt-users-bounces at lists.bestpractical.com] On Behalf Of Roy
El-Hames
Sent: Tuesday, December 04, 2007 7:27 AM
To: RT Users
Subject: [rt-users] Business Hours help please

Hi ;

Can anyone help me with the code of how to determine the Business Hours 
between 2 dates:
What I got :
my $hours = Business::Hours->new();
$hours->business_hours(
     0 => { Name => 'Sunday', Start => undef, End => undef },
      1 => { Name => 'Monday', Start => '09:00', End => '17:30' },
      2 => { Name => 'Tuesday', Start => '09:00', End => '17:30' },
      3 => { Name => 'Wednesday', Start => '09:00', End => '17:30' },
      4 => { Name => 'Thursday', Start => '09:00', End => '17:30' },
      5 => { Name => 'Friday', Start => '09:00', End => '17:30' },
      6 => { Name => 'Saturday', Start => undef, End => undef }
 );
my $wtime = $hours->for_timespan(Start => time(), End =>
time()+(86400*7));
my $splosh = Dumper($wtime) ;

print "$splosh nnn\n";

I get :
$VAR1 = bless( {
                 'negInf' => 0,
                 'edges' => [
                              1196774745,
                              1196789399,
                              1196845199,
                              1196875799,
                              1196931599,
                              1196962199,
                              1197017999,
                              1197048599,
                              1197277199,
                              1197307799,
                              1197363599,
                              1197379546
                            ],
                 'posInf' => 0,
                 'empty_string' => \'-'
               }, 'Set::IntSpan' );
 nnn




More information about the RT-Users mailing list