[Java] 日付から年度求める方法

2 min read
hiroweb developer

年度とは

Wikipedia の会計年度というページには以下のような記載がある。

企業会計においては、期間の日数、期間の始期及び終期は各事業者が決定するが、期間は 1 年間とされることが一般的である。公共機関についても、期間は 1 年間とされるのが通例であり、日本では、後述の財政法及び地方自治法の規定により毎年 4 月 1 日から翌年の 3 月 31 日までの期間とされている。
会計年度 - Wikipedia

当然だが年度は、4 月 1 日から翌年の 3 月 31 日までの期間を指す。

方法

指定された年月日に対して、それは前年度なのか今年度なのかを判定し、その年度を返す。

Date date = new Date();
Calendar cal = Calendar.getInstance();
cal.setTime(date);

// 4月から翌年3月までを1年度とする
int year = cal.get(Calendar.MONTH) >= Calendar.APRIL ? cal.get(Calendar.YEAR) : cal.get(Calendar.YEAR) - 1;

java.util.Dateクラスとjava.util.Calendarクラスを使用している。まず、Date クラスで現在の日時を取得する。次に、Calendar クラスのインスタンスを取得し、Date オブジェクトをセットする。最後に、Calendar クラスの get メソッドを使用して年度を求める。

get メソッドで取得するフィールドを指定するためには、Calendar クラスで定義された int 型の定数を指定する。ここでは、MONTH 定数を指定して、月を取得し、月が 4 月以上であれば現在の年度の値、4 月未満であれば前年度の値を取得する。