今回はプログラミングのお話。
年度を求めるために 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年度。
ちゃんとあってますよね。
比較や分岐がありませんので、
書き直してもバグが出にくい、安心できるコードです。
あとは要件に合わせ、日付を指定可能なように LocalDate.now()
を変数にしたりカスタマイズすればOKです。
お役に立てたなら幸いです。