第5章 日付と時刻の新たな API : 問題 1 : プログラマーの日
問題
plusDays
メソッドを使用しないで、プログラマーの日を計算せよ
ちなみに、プログラマーの日は、元旦から256日目にあたる日のことで、ロシアでは公式の祝日になっている
解答
■ 今年が何年かを調べて算出
public static LocalDate programmersDay() { int year = LocalDate.now().getYear(); return LocalDate.ofYearDay(year, 256); }
■ One Liner
public static LocalDate programmersDay() { return LocalDate.now().withDayOfYear(256); }
■ Year
クラスを使う … これがベストか?
public static LocalDate programmersDay() { return Year.now().atDay(256); }
■ Calendar クラスを使ったバージョン
public static Calendar programmersDay() { Calendar now = Calendar.getInstance(); now.set(Calendar.DAY_OF_YEAR, 256); return now; }
Calendar クラスを使ったバージョンでは、時分秒が余計だが発想は同じ