我有一个开始日期和结束日期,因此我有一个持续时间,它可能是一个小的持续时间,或几年可能是一个很长的持续时间,我怎么能把它切成相等的持续时间,为例如:
低于持续时间约为。 1个月
startDate = 2017-03-01 00:00:00.000Z
endDate = 2017-04-01 00:00:00.000Z
我如何将它分成两等份? 如下所示:
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
答案 0 :(得分:1)
假设您正在使用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
}
答案 1 :(得分:0)
如果有些人在给定时间之间看起来是平等的,这就是代码。
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;
}