日期合并java_关于算法:合并重叠的日期范围-Java

博客讲述了如何在Java中合并具有重叠日期范围的Task对象。通过使用Java 8 Time API,创建一个算法来合并任务,将重叠任务的actionItems合并到新任务中,确保日期范围正确拆分。
摘要由CSDN通过智能技术生成

我有一个Task类,如下所示(使用Java 8 Time API)。

class Task {

LocalDateTime start;

LocalDateTime end;

Set actionItems;

}

我有两个包含此类Task实例的排序列表(首先按开始,然后按结束),让我们说ListtasksList1和ListtasksList2。我想合并重叠的任务(通过在需要时打破任务,并从重叠的其他任务中添加actionItems到一个新的任务对象中)。

例如,假设我有一个名为T1的任务,开始于2015年1月1日,结束于01/31/2015,其中包含操作项A和B。然后,用户创建了一个新的任务T2,其开始于01/15 / 2015年结束于2015年2月15日,并向其中添加了操作项C。当我合并时,我应该获得三个Task对象,如下所示。

任务X-从2015年1月1日到2015年1月15日,包含操作项A,B

任务Y-从01/15/2015到01/31/2015,包含项目A,B和C

任务Z-从01/31/2015到02/15/2015,包含项目C

为了可视化,如果我的两个列表中的任务对象在时间轴上看起来像以下内容:

> [-----]      [-----]         [----]         [-----------------]

>     [-----]           [---------------]         [------]

然后,结果任务列表将包含以下任务。

> [--][-][-

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值