可使用datetime模块中的datetime对象和timedelta对象来比较两个日期的重叠情况。具体步骤如下:
示例代码如下:
from datetime import datetime, timedelta
date1 = '2021-10-01'
date2 = '2021-10-05'
date3 = '2021-10-03'
date4 = '2021-10-06'
date1 = datetime.strptime(date1, '%Y-%m-%d')
date2 = datetime.strptime(date2, '%Y-%m-%d')
date3 = datetime.strptime(date3, '%Y-%m-%d')
date4 = datetime.strptime(date4, '%Y-%m-%d')
# 比较 date1 和 date2 是否重叠
overlap1 = (min(date1, date2), max(date1, date2)) == (date1, date2)
overlap_duration1 = (overlap1) and (date2 - date1)
if overlap_duration1 >= timedelta(days=0):
start_date1 = max(date1, date3)
end_date1 = min(date2, date4)
overlap_duration1 = (end_date1 - start_date1).days + 1 # 加上重叠天数的方法,如果需要输出重叠天数可以使用。
print(f"date1 和 date2 重叠: 重叠时间为 {start_date1.strftime('%Y-%m-%d')} 至 {end_date1.strftime('%Y-%m-%d')}")
else:
print("date1 和 date2 不重叠")
上一篇:比较中的困扰