예제 #1
0
def subdivideTime(timeframe: Timeframe, period: Period) -> List[Timeframe]:
    """Subdivide the time between startTime and endTime given into
    periods of length period and return tuples containing the start
    and end time of the respective period"""
    if period.isInfinite():
        return [timeframe]
    delta = period.delta
    periods = []
    today = timeframe.start
    oneDay = timedelta(1)
    while today <= timeframe.end:
        afterOnePeriod = today + delta
        periods.append(
            Timeframe(today, afterOnePeriod - oneDay)
        )  # Shift the last date backward one day so we dont have overlapping dates.
        today = afterOnePeriod
    return periods