gpt4 book ai didi

java - 给定两个日期范围列表,如何在 java 中找到不重叠的日期

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:22:51 26 4
gpt4 key购买 nike

我不确定我的标题是否正确,但这是我正在努力实现的目标。考虑以下两个类,AbsentPeriod、UnavailablePeriod。

class AbsentPeriod
{
Date startDate;
Date endDate;
}

class UnavailablePeriod
{
Date startDate;
Date endDate;
}

给定

Date StartDate // starting point
Date EndDate //ending point
List<AbsentPeriod> absentperiods
List<UnavailablePeriods> unavailablePeriods

寻找

List<AvailablePeriod> 

开始日期和结束日期的日期不与缺席和不可用期间的日期重叠;在给定的 StartDate 和 endDate 之间

class AvailablePeriod
{
Date startDate;
Date endDate;
}

最佳答案

您可以遍历 AbsentPeriodUnavailablePeriod 的列表,使用以下函数检查日期是否重叠,如果不重叠则将其添加到结果列表中:

public static boolean dateRangeOverlap(Date givenStartDate, Date givenEndDate, Date listItemStartDate, Date listItemEndDate)
{
boolean result = false;
if (givenStartDate !=null && givenEndDate !=null && listItemStartDate !=null && listItemEndDate != null){
result = (givenStartDate.getTime() <= listItemEndDate.getTime()) && (givenEndDate.getTime() >= listItemStartDate.getTime());
}
return result;
}

关于java - 给定两个日期范围列表,如何在 java 中找到不重叠的日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51146317/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com