-3

だから私はこのコードを持っているとしましょう:

//someParameterizedDate = New Years Eve 2011
Calendar cal = new GregorianCalendar();
cal.setTime(someParameterizedDate);
cal.roll(Calendar.DAY_OF_YEAR, 1);

カレンダーは 2012 年 1 月 1 日になりますか? すべての JavaDoc が少しわかりにくいことがわかりました。

4

1 に答える 1

4

java.util.Calendar

roll(f, delta) は、より大きなフィールドを変更せずにフィールド f に delta を追加します。これは、次の調整を加えて add(f, delta) を呼び出すことと同じです。

ロール規則。大きなフィールドは、呼び出し後に変更されません。フィールドが大きいほど、時間の単位が大きくなります。DAY_OF_MONTH は、HOUR よりも大きなフィールドです。

DAY_OF_YEARどちらが影響を与えないMONTHか、YEARどちらがより大きなユニットであるかをロールします。

つまり、基本的には 2011 年 12 月 1 日になるはずです。

add2012 年 1 月 1 日まで使用したい場合に使用できます。

于 2012-07-24T21:01:30.100 に答える