Skip to content

Instantly share code, notes, and snippets.

@vimfu
Last active July 13, 2017 09:27
Show Gist options
  • Save vimfu/8df2e9f8d405462d6a9a371ddc784125 to your computer and use it in GitHub Desktop.
Save vimfu/8df2e9f8d405462d6a9a371ddc784125 to your computer and use it in GitHub Desktop.
range of datetime (python)
from datetime import datetime, timedelta


def range_of_datetime(interval: timedelta, size:(int, None)=None, start:(datetime, None)=None, end:(datetime, None)=None):
    if start is None and end is None and size is None:
        raise Exception('Supply 3 arguments at least')
    zero_timedelta = timedelta()
    if start is not None and end is not None:
        if (start < end and interval > zero_timedelta) or (start > end and interval < zero_timedelta):
            return [start + (interval * i) for i in range(int((start - end) / interval))]
        else:
            return []
    else:
        base_time = end if start is None else start
        return [base_time + (interval * i) for i in range(size)]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment