从第一个间隔检索日期间隔列表并删除停止间隔

时间:2014-12-12 15:56:54

标签: java algorithm date

对不起标题,示例将更明确: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 ;
}

0 个答案:

没有答案