だから私はこのコードを持っているとしましょう:
//someParameterizedDate = New Years Eve 2011
Calendar cal = new GregorianCalendar();
cal.setTime(someParameterizedDate);
cal.roll(Calendar.DAY_OF_YEAR, 1);
カレンダーは 2012 年 1 月 1 日になりますか? すべての JavaDoc が少しわかりにくいことがわかりました。
roll(f, delta) は、より大きなフィールドを変更せずにフィールド f に delta を追加します。これは、次の調整を加えて add(f, delta) を呼び出すことと同じです。
ロール規則。大きなフィールドは、呼び出し後に変更されません。フィールドが大きいほど、時間の単位が大きくなります。DAY_OF_MONTH は、HOUR よりも大きなフィールドです。
DAY_OF_YEAR
どちらが影響を与えないMONTH
か、YEAR
どちらがより大きなユニットであるかをロールします。
つまり、基本的には 2011 年 12 月 1 日になるはずです。
add
2012 年 1 月 1 日まで使用したい場合に使用できます。