From 837f166dc34fd5d3536e24bcc836d593467cce79 Mon Sep 17 00:00:00 2001 From: Paul Beckingham Date: Thu, 21 Apr 2016 23:13:05 -0400 Subject: [PATCH] helper: Added overallRangeFromIntervals --- src/helper.cpp | 21 +++++++++++++++++++++ src/timew.h | 1 + 2 files changed, 22 insertions(+) diff --git a/src/helper.cpp b/src/helper.cpp index ea74a1ae..5473038e 100644 --- a/src/helper.cpp +++ b/src/helper.cpp @@ -458,3 +458,24 @@ std::vector subtractRanges ( } //////////////////////////////////////////////////////////////////////////////// +Daterange overallRangeFromIntervals (const std::vector & intervals) +{ + Daterange overall; + + for (auto& interval : intervals) + { + if (interval.start () < overall.start () || overall.start ().toEpoch () == 0) + overall.start (interval.start ()); + + // Deliberately mixed start/end. + if (interval.start () > overall.end ()) + overall.end (interval.start ()); + + if (interval.end () > overall.end ()) + overall.end (interval.end ()); + } + + return overall; +} + +//////////////////////////////////////////////////////////////////////////////// diff --git a/src/timew.h b/src/timew.h index 829f5162..36b1496f 100644 --- a/src/timew.h +++ b/src/timew.h @@ -57,6 +57,7 @@ std::string jsonFromIntervals (const std::vector &); std::vector rangesFromHolidays (const Rules&); std::vector addRanges (const Daterange&, const std::vector &, const std::vector &); std::vector subtractRanges (const Daterange&, const std::vector &, const std::vector &); +Daterange overallRangeFromIntervals (const std::vector &); // utiƀ.cpp std::string osName ();