日付と時刻の新たな API : 問題 2 : 日付の加算
問題
LocalDate.of(2000, 2, 29)
に1年を加算するとどうなるか?
解答
JavaDoc に
無効なときは「月の日」を最後の有効な日に調整します
とあるので、2001年2月28日になる
LocalDate date = LocalDate.of(2000, 2, 29); date = date.plusYears(1); // 2001/2/28
さらに問題
4年を加算するとどうなるか?
解答
2004年2月29日になる
LocalDate date = LocalDate.of(2000, 2, 29); date = date.plusYears(4); // 2004/2/29
またまた問題
1年を4回加算するとどうなるか?
解答
4年を加算するのと違い、2004年2月28日になる
LocalDate date = LocalDate.of(2000, 2, 29); date = date.plusYears(1); // 2001/2/28 date = date.plusYears(1); // 2002/2/28 date = date.plusYears(1); // 2003/2/28 date = date.plusYears(1); // 2004/2/28