はじめに
Apexで月初とか月末を出す処理、何かと使うので自分の備忘録として載せておきます。
月初の日付取得
DateクラスにtoStartOfMonthメソッドが用意されているのでそれを呼ぶだけです。
Date targetDate = Date.today();
Date startDate = targetDate.toStartOfMonth();
月末の日付取得
DateクラスにtoEndOfMonthメソッドが存在しないので自分で実装しないといけません。
public static date getEndOfMonth(Date targetDate) {
Date NewTargetDate = targetDate.addMonths(1).toStartOfMonth();
Date result = NewTargetDate - 1;
return result;
}
次月の初月を取得した後に1日引き算する方法で実現する手法です。
自分が新人だったときVB5で同じことしていました。20年前から変わっていないです。もはや伝統芸。
文献
Dateクラス 公式ドキュメント
https://developer.salesforce.com/docs/atlas.ja-jp.apexcode.meta/apexcode/apex_methods_system_date.htm