java CalendarArray获取两个日期之间的日期并跳过几个
我试图创建一个日历对象数组,从中获取开始和结束之间的所有日期,同时跳过日期“skip”。让我们想象一下,我有日期:
start = 04.03.2016
skip = 21.07.2016
end = 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 楼答案
第一:
您从不修改开始或结束,因此循环是无止境的
第二:使用一个占位符对象,这意味着整个数组指向该对象,为循环中的每个步骤创建一个新日历
第三:不要使用数组,使用ArrayList