对不起标题,示例将更明确:p。
我需要你帮助一个算法。
我希望通过以下方法获得List<Entry<Date, Date>>
:
List<Entry<Date, Date>> getNonStopDates(Date firstDate, Date lastDate, List<Entry<Date, Date>> listIntervalsStopDates);
例如,当我用这个参数调用getNonStopDates
(如果你有一个更好的名字我感兴趣的话)时:
firstDate = 01/01/2014 lastDate = 31/12/2014 listIntervalsStopDates (the list is always ordered by desc, and there is no overlap): 1: 01/02/2014 -> 28/02/2014 2: 01/11/2014 -> 30/11/2014
结果将是:
1: 01/01/2014 -> 31/01/2014 2: 01/03/2014 -> 31/10/2014 3: 01/12/2014 -> 31/12/2014
我的想法是浏览listIntervalsStopDates
,考虑订单日期之间的天数差异,但我不知道如何实现它(不使用Joda Time或其他东西)......
这是我的第一次尝试:
public List<Entry<Date, Date>> getNonStopDates(Date firstDate, Date lastDate, List<Entry<Date, Date>> listIntervalsStopDateso) {
List<Entry<Date, Date>> intervals = new ArrayList<Entry<Date, Date>>();
intervals.add(new AbstractMap.SimpleEntry<Date, Date>(firstDate,lastDate));
Calendar calendar = Calendar.getInstance();
calendar.setTime(firstDate);
for (Entry<Date, Date> interval : listIntervalsStopDateso) {
int daysBetween = (int) ((firstDate.getTime() - interval.getKey().getTime()) / (1000 * 60 * 60 * 24));
}
return intervals ;
}