[Java] 年度を求めるスマートな書き方(考え方は他の言語でも一緒)

Java

年度を求めるために 1月~3月 なら・・・と分岐させているソースコードをよく見かけますが、if 分岐させているところがちょっとナンセンス・・・。

ということで、私が知る最もスマートな求め方を Java で書き残しておきます。

import java.time.LocalDate;

public class Nendo {
	public static void main(String[] args) {
		final int nendo = LocalDate.now().minusMonths(3).getYear();
		System.out.println(nendo);
	}
}

上記のコードでは3ヶ月前の年を求めています。

2017年3月の3ヶ月前は 2016年12月なので 2016年度。
2017年4月の3ヶ月前は 2017年1月なので 2017年度。
あってますよね。

比較や分岐がありませんので、
書き直してもバグが出にくい、安心できるコードです。

お役に立てたなら幸いです。

コメント