Java 8 で採用される Lambda よりもひょっとしたら素敵な Date and Time API の素晴らしい使い方をネットで見つけました。
NetBeans 8 Dev を使って Lambda で遊ぶ その2 で Date and Time API を使って年齢を取得しました。
今日、ネットサーフィン(死語)で素晴らしいコードを見つけたのでそれを使ってみました。
変更前のコード
public int getAge() {
LocalDate today = LocalDate.now();
int age = today.getYear() - birthday.getYear();
if (birthday.getMonthValue() > today.getMonthValue()
|| birthday.getMonthValue() == today.getMonthValue()
&& birthday.getDayOfMonth()
> today.getDayOfMonth()) {
age--;
}
return age;
}
変更後のコード
public int getAge() {
LocalDate today = LocalDate.now();
return Period.between(birthday, today).getYears();
}
とてもすっきりしてますね(^_^)
この情報は日本語でこちらのサイトの記事を参考にさせていただきました。
年齢を計算する、java.util.Calendarとjava.time.LocalDateとで
詳しく丁寧に解説されていますので興味のある方は参考に!
ちなみに、私は年齢の繰り上がる日時を今の今まで思い違いをしてました( ̄。 ̄;)