会計処理や様々な期限のレポートを扱うシステムにおいて、開始年月から終了年月までの範囲を年月で扱いたい状況というのが稀に存在する。
今回はそれに対するコードを Java で書いてみようと思う。
public static void outputYearMonthRange(int startYearMonth, int endYearMonth) {
int currentYearMonth = startYearMonth;
while (currentYearMonth <= endYearMonth) {
System.out.println(currentYearMonth);
if (currentYearMonth % 100 == 12) {
currentYearMonth += 89; // 12 -> 01
} else {
currentYearMonth += 1;
}
}
}
開始年月と終了年月をYYYYMM形式の数値として渡してもらい、開始から終了の範囲を走査するだけである。
試しに実行してみる。いい感じに出ている。
public static void main(String[] args) {
outputYearMonthRange(202304, 202403);
}
出力を月初の Date型に変えたり、クラス化して Iterable で実装するなど組み込み方は色々あると思う。
0 件のコメント:
コメントを投稿