0

Calendarオブジェクトに1年を追加すると、最初の反復では1年が追加されますが、最初の反復では0年が追加されます。その後の呼び出しごとに、必要に応じて1年が追加されます。例えば:

calendarObject.add(Calendar.YEAR,1); //This actually adds nothing    
calendarObject.add(Calendar.YEAR,1); // now it works.

注: calendarObjectは、他のプロパティが設定されていない1995年になるように設定されています。

4

2 に答える 2

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
于 2012-09-27T02:22:15.833 に答える
1

メモが問題の原因です。年だけでなく、より多くのカレンダープロパティを設定する必要があります。Vikdorの例は、返されたデフォルトのCalendarインスタンスを使用しているために機能します。このインスタンスには、すべてのクラスメンバーが入力されています。「1995」を指定するだけで、奇妙な動作が発生します。

于 2012-09-27T02:25:29.220 に答える