|
Lines 582-618
sub copy_to_branch {
Link Here
|
| 582 |
return 1; |
582 |
return 1; |
| 583 |
} |
583 |
} |
| 584 |
|
584 |
|
| 585 |
=head2 daysBetween |
|
|
| 586 |
|
| 587 |
my $daysBetween = $calendar->daysBetween($startdate, $enddate) |
| 588 |
|
| 589 |
C<$startdate> and C<$enddate> are C4::Dates objects that define the interval. |
| 590 |
|
| 591 |
Returns the number of non-holiday days in the interval. |
| 592 |
useDaysMode syspref has no effect here. |
| 593 |
=cut |
| 594 |
|
| 595 |
sub daysBetween ($$$) { |
| 596 |
my $self = shift or return undef; |
| 597 |
my $startdate = shift or return undef; |
| 598 |
my $enddate = shift or return undef; |
| 599 |
my ($yearFrom,$monthFrom,$dayFrom) = split("-",$startdate->output('iso')); |
| 600 |
my ($yearTo, $monthTo, $dayTo ) = split("-", $enddate->output('iso')); |
| 601 |
if (Date_to_Days($yearFrom,$monthFrom,$dayFrom) > Date_to_Days($yearTo,$monthTo,$dayTo)) { |
| 602 |
return 0; |
| 603 |
# we don't go backwards ( FIXME - handle this error better ) |
| 604 |
} |
| 605 |
my $count = 0; |
| 606 |
while (1) { |
| 607 |
($yearFrom != $yearTo or $monthFrom != $monthTo or $dayFrom != $dayTo) or last; # if they all match, it's the last day |
| 608 |
unless ($self->isHoliday($dayFrom, $monthFrom, $yearFrom)) { |
| 609 |
$count++; |
| 610 |
} |
| 611 |
($yearFrom, $monthFrom, $dayFrom) = &Date::Calc::Add_Delta_Days($yearFrom, $monthFrom, $dayFrom, 1); |
| 612 |
} |
| 613 |
return($count); |
| 614 |
} |
| 615 |
|
| 616 |
=head2 addDate |
585 |
=head2 addDate |
| 617 |
|
586 |
|
| 618 |
my ($day, $month, $year) = $calendar->addDate($date, $offset) |
587 |
my ($day, $month, $year) = $calendar->addDate($date, $offset) |
|
Lines 660-675
Returns the number of non-holiday days in the interval.
Link Here
|
| 660 |
useDaysMode syspref has no effect here. |
629 |
useDaysMode syspref has no effect here. |
| 661 |
=cut |
630 |
=cut |
| 662 |
|
631 |
|
| 663 |
sub daysBetween ($$$) { |
632 |
sub daysBetween { |
| 664 |
my $self = shift or return undef; |
633 |
my $self = shift or return; |
| 665 |
my $startdate = shift or return undef; |
634 |
my $startdate = shift or return; |
| 666 |
my $enddate = shift or return undef; |
635 |
my $enddate = shift or return; |
| 667 |
my ($yearFrom,$monthFrom,$dayFrom) = split("-",$startdate->output('iso')); |
636 |
my ($yearFrom,$monthFrom,$dayFrom) = split("-",$startdate->output('iso')); |
| 668 |
my ($yearTo, $monthTo, $dayTo ) = split("-", $enddate->output('iso')); |
637 |
my ($yearTo, $monthTo, $dayTo ) = split("-", $enddate->output('iso')); |
| 669 |
if (Date_to_Days($yearFrom,$monthFrom,$dayFrom) > Date_to_Days($yearTo,$monthTo,$dayTo)) { |
638 |
if (Date_to_Days($yearFrom,$monthFrom,$dayFrom) > Date_to_Days($yearTo,$monthTo,$dayTo)) { |
| 670 |
return 0; |
639 |
return 0; |
| 671 |
# we don't go backwards ( FIXME - handle this error better ) |
640 |
# we don't go backwards ( FIXME - handle this error better ) |
| 672 |
} |
641 |
} |
| 673 |
my $count = 0; |
642 |
my $count = 0; |
| 674 |
while (1) { |
643 |
while (1) { |
| 675 |
($yearFrom != $yearTo or $monthFrom != $monthTo or $dayFrom != $dayTo) or last; # if they all match, it's the last day |
644 |
($yearFrom != $yearTo or $monthFrom != $monthTo or $dayFrom != $dayTo) or last; # if they all match, it's the last day |
| 676 |
- |
|
|