有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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) 个答案

  1. # 1 楼答案

    第一:

    while (start.before(end)) {
    

    您从不修改开始或结束,因此循环是无止境的

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

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