「駑馬十駕」を信念に IT系情報を中心に調べた事をコツコツ綴っています。

Javaで「月末日(月の最終日)」を求めたい場面は、業務システムでは非常によくあります。たとえば請求締め処理、月次バッチ、経費計算、月末日のチェックロジックなど、多くの処理で「今月の最終日」を正確に取得することが必要です。

この記事では、LocalDateTemporalAdjusters を使った一般的な方法に加えて、YearMonthlengthOfMonth() を利用した実務的でシンプルな書き方も紹介します。あわせて「最終営業日の取得」など、現場でよく求められる実用テクニックも補足しています。

LocalDate型の月末日の取得方法

Javaソース

  • LocalDate型で月末日を取得するにはwithメソッドの引数に「TemporalAdjusters.lastDayOfMonth()」を指定します。

     

コンソール

 


Calendar型の月末日の取得方法

Javaソース

  • Calenar型で月末日を取得するにはgetActualMaximumメソッドを使用します。

     

コンソール

 


補足:YearMonth や lengthOfMonth() を使った別解、実務で使える応用例

月末日を取得する方法は TemporalAdjusters.lastDayOfMonth() が最も定番ですが、実務では他の書き方が役立つ場面も多いです。ここでは追加のテクニックとしていくつか紹介します。


■ YearMonth を使う書き方(コードがシンプルで読みやすい)

YearMonth は「年+月」を扱うクラスのため、月末日を取得するだけなら一番読みやすい方法 です。


■ lengthOfMonth() + withDayOfMonth() を使う別解

lengthOfMonth() でその月の日数を取得 → withDayOfMonth() に渡すだけで月末日になります。


■ “月の最終営業日(平日ベース)” を取得したいケース

金融系や締め処理では「月末が土日なら前の平日を採用する」ケースがあります。


■ ZonedDateTime / LocalDateTime と組み合わせる場合の注意

時間やタイムゾーン付きの日時 (ZonedDateTime / LocalDateTime) から 日付だけ月末に進めたい場合 は、一度 toLocalDate() で取り出してから加工します。

LocalDate と違い、日時型は「時刻」や「タイムゾーン」の概念があるため、月末ロジックを適用するときは型をしっかり意識しましょう。

Ads by Google

0 0
Article Rating
申し込む
注目する
guest
0 コメント一覧
最も古い
最新 高評価
インラインフィードバック
すべてのコメントを見る
0
あなたの考えが大好きです、コメントしてください。x