CUBは子供の白熊

Java SE 8 実践プログラミングの練習問題を解く

日付と時刻の新たな 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