1ヶ月単位でデータを出力しないといけないケースや月初の日付、月末の日付を取得したいケースがABAP開発しているとよくあります。その時に使える汎用モジュールに『HR_JP_MONTH_BEGIN_END_DATE』というものがあります。
任意の日付を渡すと、その日付の属する月の初日と最終日を返してきてくれます。月初日だけなら日付(MM)部分を『01』に置き換えるだけでも良いのですが、月末日は月によって31日の時もあれば30日の時もあって判定するのが面倒です。
この汎用モジュールを使えば、閏年も含めてちゃんとその辺りの考慮をした形で月末日を取得する事ができます。汎用モジュールのステータス的には『未リリース』になってはいますが、多数の案件で使用実績もあるので、使って問題ないと思います。
使用イメージ
DATA:
g_today TYPE d, "今日
g_begin_date TYPE d, "今月初日
g_end_date TYPE d. "今月末日
g_today = sy-datum.
* 今月の初日と末日を取得
CALL FUNCTION 'HR_JP_MONTH_BEGIN_END_DATE'
EXPORTING
iv_date = g_today
IMPORTING
ev_month_begin_date = g_begin_date
ev_month_end_date = g_end_date.
コメント