Java: 我有 joda 开始和结束日期时间,我如何将它分成 N 块?

Java: I have joda Start and End DateTime, how would I slice it into N pieces?

我有一个开始日期和结束日期,因此我有一个持续时间,它可以是几小时的小持续时间,也可以是几年的长持续时间,我怎样才能将它分成相等的持续时间,例如:

以下持续时间约为。 1个月

startDate = 2017-03-01 00:00:00.000Z
endDate = 2017-04-01 00:00:00.000Z

我如何将它分成 2 等份? 如下所示:

startDate1 =  2017-03-01 00:00:00.000Z
endDate1 = 2017-03-15 00:00:00.000Z

startDate2 = 2017-03-15 00:00:00.000Z
endDate2 = 2017-04-01 00:00:00.000Z

假设您正在使用 LocalData,对两个日期使用函数 'getLocalMillis',然后以您选择的间隔从头到尾循环。

伪代码:

long start = startDate.getLocalMillis();
long end = endDate.getLocalMillis();
long interval = (end-start)/numberOfIntervals;
for(long i = start+interval; i < end; i+=interval){
  LocalDate ld = new LocalDate(i);
  //do something with ld
}

如果有些人在给定时间之间寻找相等的分母,这里是代码。

private List<Interval> splitDateTime(long start, long end, int intervalNo) {
        long interval = (end - start) / intervalNo;
        List<Interval> list = new ArrayList<Interval>();
        for (long i = start + interval; i < end; i += interval) {
            list.add(new Interval(start, i));
            start=start + interval;
        }
        list.add(new Interval(start, end));
        return list;
    }