Efficient date range overlap calculation in python?

后端 未结 7 1165
南旧
南旧 2020-11-28 02:50

I have two date ranges where each range is determined by a start and end date (obviously, datetime.date() instances). The two ranges can overlap or not. I need the number of

7条回答
  •  有刺的猬
    2020-11-28 03:14

    You can use the datetimerange package: https://pypi.org/project/DateTimeRange/

    from datetimerange import DateTimeRange
    time_range1 = DateTimeRange("2015-01-01T00:00:00+0900", "2015-01-04T00:20:00+0900") 
    time_range2 = DateTimeRange("2015-01-01T00:00:10+0900", "2015-01-04T00:20:00+0900")
    tem3 = time_range1.intersection(time_range2)
    if tem3.NOT_A_TIME_STR == 'NaT':  # No overlap
        S_Time = 0
    else: # Output the overlap seconds
        S_Time = tem3.timedelta.total_seconds()
    

    "2015-01-01T00:00:00+0900" inside the DateTimeRange() can also be datetime format, like Timestamp('2017-08-30 20:36:25').

提交回复
热议问题