こんにちは、にいるです。
最近、Apexで営業日判定をするメソッドを作成したので、紹介したいと思います。
1.前提
前提条件として、SOQL実行もDML操作も何もしていないプログラムなのでガバナ制限に引っかかる仕様からは遠いので、どんな状況でも問題なく使用できると思います。
ただ、一点、土日だけを休日として、祝日は拾えないメソッドになっています。
祝日の休日判定は別記事で紹介していますので、そちらをご覧ください。
2.コード
作成したコードです。
すごくシンプルにしていて、土日ならTrueを返すBoolean型にしています。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
// 土日チェックメソッド public Boolean checkYobi(Datetime targetDateTime){ Boolean skipFlg = False; // チェック対象日の取得と加工 Datetime tDate = Datetime.newInstance(targetDatetime.year(), targetDatetime.month(), targetDatetime.day()); String week = tDate.format('E'); System.debug('●week● = '+ week); if(week == 'Sun'){ return True; }else if(week =='Mon'){ return False; }else if(week =='Tue'){ return False; }else if(week =='Wed'){ return False; }else if(week =='Thu'){ return False; }else if(week =='Fri'){ return False; }else if(week =='Sat'){ return True; } return null; } |
呼び出し元の引数に判定したいDatetime型の変数を設定して使用します。
引数や戻り値のデータ型については、仕様に合わせて変更してもらえればと思います。
3.まとめ
いかがでしたでしょうか。
今回は、土日を休日として判定するメソッドを作成してみました。
共通クラスを作成してどのクラスからも営業日判定メソッドを呼び出せるようにしておけば、汎用的に使用できるのでとても便利になります。
平日しか動かさないプログラムの実行は、要件的に結構あると思うので。
ぜひ、みなさんも試してみてください。
他にも色々と標準機能やSalesforce機能について紹介していますので、ご覧ください。
ではでは!
コメント