如何将多年的Calendar类型存储到数组中?

时间:2016-10-31 13:12:34

标签: java android arrays for-loop calendar

我试图创建一个数组并用currentYear + 1填充它,最多15个Calendar []年= {2016,2017,2018,2019,....... 2031}我想要在数字选择器中显示它。到目前为止,我能够获得currentYear并添加1年,但是当我尝试将结果存储到for循环中的数组时,我遇到了问题。

我的代码到目前为止

Calendar cal;
Calendar [] years = new Calendar[15];
public Calendar [] getYears(){


    cal = Calendar.getInstance();
    cal.get(Calendar.YEAR);
    //cal.add(Calendar.YEAR, 1);
    for(int i = 1; i < years.length; i ++){

        Calendar temp = cal.add(Calendar.YEAR, 1);
        years [i] = temp ;

    }


    return years;
}

1 个答案:

答案 0 :(得分:0)

首先,如果数组保持div.dropcap p:first-of-type::first-letter {color: #f00;}年,那么它将从152016,而不是2030

其次,如果您只是将cal字段添加到31的所有位置,那么您将有15个引用指向完全相同的array years。您要做的是创建克隆对象并指向它们,您可以使用clone()方法执行此操作。

因此,请尝试将方法更改为:

Object

但如果您想要存储多年,我建议您将代码更改为:

public Calendar[] getYears() {
    cal = Calendar.getInstance();
    for (int index = 0; index < years.length;) {
        years[index++] = (Calendar) cal.clone();
        cal.add(Calendar.YEAR, 1);
    }
    return years;
}