def split(self, points):
        '''Splits the list of time intervals in the specified points

        The function assumes that the time intervals do not overlap and ignores
        points that are not inside of any interval.

        Parameters
        ==========
        points: list of datetime
        '''
        for p in points:
            for i in range(len(self.intervals)):
                if (self.intervals[i].start < p) and (self.intervals[i].end > p):
                    self.intervals = (self.intervals[:i]
                                     + [TimeInterval(self.intervals[i].start, p),
                                        TimeInterval(p, self.intervals[i].end)]
                                     + self.intervals[(i + 1):])
                    break
Splits the list of time intervals in the specified points

        The function assumes that the time intervals do not overlap and ignores
        points that are not inside of any interval.

        Parameters
        ==========
        points: list of datetime