○ヶ月後の同日がない場合に翌月1日にする方法

はじめに

日付を計算する」で「○か月後」を指定した場合、基準日が月末の場合は指定した月でも月末に調整されます。


例としては、

基準日:2022/3/31 → 1ヶ月後:2022/4/30

基準日:2020/1/31 → 1ヶ月後:2020/2/29

などです。

 

しかし、利用する環境によっては

基準日:2022/3/31 → 1ヶ月後:2022/5/01

のように、同じ日がない場合は翌月1日に設定したいというケースがあると思います。

 

今回は、その方法を紹介します。

 

今回のカスタマイズで出来ること

  • ○ヶ月後の同日がない場合は○ヶ月後の翌月1日にします

  • ○ヶ月後の同日がある場合は○ヶ月後の同日にします


アプリには以下のフィールドを作成しました

フィールド名

フィールドコード

フィールドタイプ

基準日

基準日

日付

締切日

締切日

日付

 

Customineの設定

全体の設定はこのようになります。


フィールドの値を編集して値が変わった時」に「日付を計算する」で計算するところまでは通常通りです。

その後に「他のアクションの実行が完了した時」で「月数を計算する」とします。

この時に「月数を計算する」の「月内の日の取り扱い」を「月内の日も考慮」にして、終了日は「日付を計算する」のアクション番号を指定します。


これで「月数を計算する」の結果は、日が未満の場合には「日付を計算する」の右辺値 - 1(今回だと 1-1 = 0)になり、以上だと右辺値(今回だと 1)になります。


例:

  • 基準日が2022/3/30で計算した日が2022/4/30だと1

  • 基準日が2022/3/31で計算した日が2022/4/30だと0

  • 基準日が2022/3/30で計算した日が2022/9/30だと6

  • 基準日が2022/3/31で計算した日が2022/9/30だと5


今回は「日付を計算する」で1ヶ月後を指定しているので、「アクションの結果が特定の値ならば」で0の場合に「日付を計算する」で翌日にします。これで、翌月の1日に変わります。

 

まとめ

○ヶ月先の日付はルールが色々とあると思いますので、みなさんもお試しください。