我的目标很简单:我有一个包含结束日期和开始日期的对象列表。我需要找到未覆盖的时间段,并根据这些时间段创建一个新对象(每个发现的孔的开始日期为第1天,结束日期为第1天)。
假设我的第一个列表中有6个对象,如下所示:
对象1:开始日期:2022-01-01/结束日期2022-01-03
对象2:开始日期:2022-01-08/结束日期2022-01-18
对象3:开始日期: 2022-02-11/结束日期2022-02-19
对象4:开始日期: 2022-02-22/结束日期2022-02-25
对象5:开始日期:2022-02-17/结束日期2022-03-10
对象6:开始日期: 2022-03-18/结束日期2022-03-25
我需要生成以下三个对象:
第一期:开始日期:2022-01-04/结束日期2022-01-07
第二阶段:开始日期:2022-01-19/结束日期2022-02-10
三期:开始日期:2022-03-11/结束日期2022-03-17
你认为我应该怎么做,使用Java8和LocalDate
对象?
我会使用一个Period
对象来实现Comparable
接口来订购ArrayList
public Period implements Comparable {
LocalDate startDate;
LocalDate endDate;
//getters and setters, constructors...
public compareTo(Object obj) { //override
//type checks...
return this.startDate.compareTo(((Period) obj).getStartDate());
}
}
然后,我会在有序列表中循环查找是否存在漏洞:
public ArrayList<Period> findHoles(ArrayList<Period> periods) {
//Collection.sort(periods) if it isn't ordered
ArrayList<Period> holes;
Period currentPeriod = periods.get(0);
for (Period period : periods) {
LocalDate holeStart = currentPeriod.getEndDate().plusDays(1);
LocalDate holeEnd = period.getStartDate().minusDays(1);
if (holeStart.isBefore(holeEnd)) {
holes.add(new Period(holeStart,holeEnd));
}
if (currentPeriod.getEndDate().isBefore(period.getEndDate())) {
currentPeriod = period;
}
}
return holes;
}
我的用例——我是一名医生。在某一天,我可以工作几个小时,但有些时间不可用。我想创建一个对象“周期我的工作日”。当有人预约上午8点到9点(即“周期病人1预约”)时,该时段将从我的工作日“删除”。当新患者访问myWorkDay时,他只看到myWorkDay-病人1约会。如果病人1释放了他的时隙,那么新患者会看到完整的myWorkDay。 有可能使用JodaTime做到这一点吗? 有一个额外的要求是不必
我在项目中使用Crudepository进行数据库操作。当我使用由Spring实现的保存方法更新持久化数据时,其他字段将被覆盖。例如,我只发送firstName进行更新,但lastName被转换为空字段。 简单地说,我用这样的实体调用保存方法: 我正在将此JSON发送到更新方法: Spring 将此 JSON 转换为 Rest api endpoint的成员。成员.java是: 如何防止覆盖其他字
在Ruby on Rails中,有一个特性允许您使用任何日期并打印出它是多么“久远”。 例如: 在Java有什么简单的方法可以做到这一点吗?
我正在开发一个spring api,在这个api中我使用postgres并保存一个timestamp类型的字段,字段名为。现在我想检查这个字段是否在两个不同的时间戳之间。 现在我正在使用这个: 是否可以在之间使用
问题内容: 这可能是一个重复的问题,但我没有找到想要的东西。我在UI活动中调用AsyncTask, 在doInBackground中调用需要时间的方法。如果一段时间后没有返回数据,我想中断该线程。以下是我尝试执行此操作的代码。 但这并不能在30秒后停止任务,事实上,这花费了更多时间。我也尝试过,但这也不起作用。 谁能告诉我该怎么做或如何在doInBackground中使用isCancelled()
本文向大家介绍PHP间隔一段时间执行代码的方法,包括了PHP间隔一段时间执行代码的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了PHP间隔一段时间执行代码的方法。分享给大家供大家参考。具体分析如下: PHP如何设置每隔一段时间自动执行某段代码?例如定时生成静态文件之类的,这就需要设置休眠时间,即每隔一段时间程序就会调用某段代码. 代码如下: 希望本文所述对大家的PHP程序设计有所帮助