我正在尝试创建一个日历对象数组,其中我获取开始和结束之间的所有日期,同时跳过日期"跳过"。所以,让我们想象一下我的日期:
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;
}
我很感激有关如何继续的任何提示。 谢谢!
答案 0 :(得分:0)
第一:
while (start.before(end)) {
你永远不会修改开始或结束,所以循环是无止境的。
第二:你使用一个占位符对象,这意味着整个数组指向那个对象,为循环中的每个步骤创建一个新的日历。
第三:不使用数组,使用ArrayList。