現在、日付が 5 月 28 日であるとします。次のコマンドを順番に呼び出すと、出力は次のようになります
cal.add(Calendar.DATE, 1); // Day = 29
cal.add(Calendar.DATE, 1); // Day = 30
cal.add(Calendar.DATE, 1); // Day = 31
cal.add(Calendar.DATE, 1); // Day = 31
cal.add(Calendar.DATE, -1); // Day = 29
これが次の月にジャンプしないのはなぜですか?では、なぜ 31 日に止まっているのでしょうか (しかし、1 を引くと 29 にジャンプします)。