Source code for pyacs.lib.timeperiod.intersection

"""TimePeriod.intersection implementation."""


[docs] def intersection(self, period): """Return the intersection of this period with another. Parameters ---------- period : TimePeriod The other time period. Returns ------- TimePeriod Intersection period, or undefined if no overlap. """ # If one period is not defined if not self.isdefined() or not period.isdefined(): return self.__class__() self_start = self._TimePeriod__start_time self_end = self._TimePeriod__end_time # If period don't intersect if self_end < period.begin() or period.end() < self_start: return self.__class__() # For simplicity self must begin first if self_start > period.begin(): return period.intersection(self) if self_end < period.end(): return self.__class__(period.begin(), self_end) else: return self.__class__(period.begin(), period.end())