CalendarArray在两个日期之间获取日期并跳过几个日期

时间:2017-11-04 17:50:58

标签: java calendar range skip

我正在尝试创建一个日历对象数组,其中我获取开始和结束之间的所有日期,同时跳过日期"跳过"。所以,让我们想象一下我的日期:

  

start = 04.03.2016
  skip = 21.07.2016
  结束= 02.03.2017

我试过这样的事情,但它没有那么好用:

public static Calendar[] getRange(Calendar start, Calendar skip, Calendar end){ 
    Calendar[] daysRange = new Calendar[100];
    Calendar placeholder = Calendar.getInstance();

    while(start.before(end)){
        if(placeholder.getTime() == skip.getTime()){
            continue;
        } placeholder.add(Calendar.Date, 1);
    }
    //(pseudocode)
    //add placeholder to daysRange
    return daysRange;
}

我很感激有关如何继续的任何提示。 谢谢!

1 个答案:

答案 0 :(得分:0)

第一:

while (start.before(end)) {

你永远不会修改开始或结束,所以循环是无止境的。

第二:你使用一个占位符对象,这意味着整个数组指向那个对象,为循环中的每个步骤创建一个新的日历。

第三:不使用数组,使用ArrayList。