年度を求めるために 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年度。
あってますよね。
比較や分岐がありませんので、
書き直してもバグが出にくい、安心できるコードです。
お役に立てたなら幸いです。
コメント