gfw.common.datetime.split_datetime_range#

split_datetime_range(start, end, step=None)[source]#

Splits a datetime range into multiple sub-ranges of a specified duration.

Parameters:
  • start (datetime) – The start datetime of the overall range (inclusive).

  • end (datetime) – The end datetime of the overall range (exclusive).

  • step (relativedelta | None) – The duration of each sub-range. Defaults to one year.

Returns:

list[tuple[datetime, datetime]]

A list of tuples, each containing the start (inclusive) and end (exclusive) datetimes of a sub-range.

Return type:

list[tuple[datetime, datetime]]

Example

>>> from datetime import datetime
>>> from dateutil.relativedelta import relativedelta
>>> split_date_ranges(datetime(2020, 1, 1), datetime(2022, 1, 1), relativedelta(years=1))
[(datetime(2020, 1, 1), datetime(2021, 1, 1)), (datetime(2021, 1, 1), datetime(2022, 1, 1))]