From 270ab9890480862a3273aa223273966a90681f5d Mon Sep 17 00:00:00 2001 From: Alex Arnaud Date: Fri, 18 Dec 2015 15:38:24 +0100 Subject: [PATCH] Bug 15261: remove Date::Range and Date::Simple dependencies Rebased on master --- Koha/DateUtils.pm | 32 +++++++++++++++++++++++++------- 1 file changed, 25 insertions(+), 7 deletions(-) diff --git a/Koha/DateUtils.pm b/Koha/DateUtils.pm index d0064ca..c02d673 100644 --- a/Koha/DateUtils.pm +++ b/Koha/DateUtils.pm @@ -18,8 +18,6 @@ package Koha::DateUtils; use Modern::Perl; use DateTime; -use Date::Range; -use Date::Simple; use C4::Context; use Carp; @@ -310,11 +308,31 @@ sub format_sqldatetime { sub date_ranges_overlap { my ($start1, $end1, $start2, $end2) = @_; - my $range1 = Date::Range->new(Date::Simple->new($start1), Date::Simple->new($end1)); - my $range2 = Date::Range->new(Date::Simple->new($start2), Date::Simple->new($end2)); - - if ($range1->overlaps($range2)) { - return $range1->overlap($range2); + $start1 = dt_from_string( $start1, 'iso' ); + $end1 = dt_from_string( $end1, 'iso' ); + $start2 = dt_from_string( $start2, 'iso' ); + $end2 = dt_from_string( $end2, 'iso' ); + + if ( + # Start of range 2 is in the range 1. + ( + DateTime->compare($start2, $start1) >= 0 + && DateTime->compare($start2, $end1) <= 0 + ) + || + # End of range 2 is in the range 1. + ( + DateTime->compare($end2, $start1) >= 0 + && DateTime->compare($end2, $end1) <= 0 + ) + || + # Range 2 start before and end after range 1. + ( + DateTime->compare($start2, $start1) < 0 + && DateTime->compare($end2, $end1) > 0 + ) + ) { + return 1; } return; -- 2.7.0