当向Calendar对象添加1年时,第一次迭代会增加零年,即使它应该添加1.每个后续调用都会增加1年。例如:
calendarObject.add(Calendar.YEAR,1); //This actually adds nothing
calendarObject.add(Calendar.YEAR,1); // now it works.
注意: calendarObject已设置为1995年,没有设置其他属性。
答案 0 :(得分:2)
它运作正常。
import java.util.Calendar;
public class CalTest
{
public static void main(String[] args)
{
Calendar cal = Calendar.getInstance();
cal.set(Calendar.YEAR, 1995);
System.out.println(cal.get(Calendar.YEAR));
cal.add(Calendar.YEAR, 1);
System.out.println(cal.get(Calendar.YEAR));
cal.add(Calendar.YEAR, 1);
System.out.println(cal.get(Calendar.YEAR));
}
}
输出:
1995
1996
1997
答案 1 :(得分:1)
注意是问题的根源。除了年份之外,您还需要设置更多日历属性。 Vikdor的示例有效,因为他使用的是返回的默认Calendar实例,其中填写了所有类成员。仅指定“1995”将导致奇怪的行为。