我有一个Interval
对象:
Interval firstInterval =
new Interval(new DateTime(2017,06,26,07,55,30),new DateTime(2017,06,26,22,55,30));
和
DateTime nightToDay = new DateTime(2017, 06, 26, 8, 0, 0);
DateTime dayToNight = new DateTime(2017, 06, 26, 22, 0, 0);
我想获得Interval[]
:
[
[2017-06-26 07:55:30 ~ 2017-06-26 08:00:00],
[2017-06-26 08:00:00 ~ 2017-06-26 22:00:00],
[2017-06-26 22:00:00 ~ 2017-06-26 22:55:30]
]
当然,这些参数并不固定,只是一个例子。
答案 0 :(得分:0)
假设您的一般情况是:
start
和end
nightToDay
和dayToNight
日期start
至nightToDay
nightToDay
至dayToNight
dayToNight
至end
对于上述每种情况,您还需要检查间隔的开始是否在结束之前。
如果这就是你需要的,那就去做:
List<Interval> list = new ArrayList<Interval>();
if (firstInterval.getStart().isBefore(nightToDay)) {
list.add(new Interval(firstInterval.getStart(), nightToDay));
}
if (nightToDay.isBefore(dayToNight)) {
list.add(new Interval(nightToDay, dayToNight));
}
if (dayToNight.isBefore(firstInterval.getEnd())) {
list.add(new Interval(dayToNight, firstInterval.getEnd()));
}
list
将包含您需要的所有Interval
个对象。
如果您需要一个数组,那么转换列表很容易:
Interval[] intervals = new Interval[list.size()];
intervals = list.toArray(intervals);
intervals
数组将创建所有间隔。