メニュー

土日を除く月末最終日を取得したい

【質問】
土日を除く月末最終日を取得したい。
以下の記事で、月末日の取得ロジックは判明したが、この場合土日でも最終日として出てしまう。
http://sanwacomtec.xsrv.jp/automate/knowledge/3126/
土日を除いた形で出せないだろうか

【回答】
Weekday関数を使用して、「1」(日曜日)または「7」(土曜日)だった場合に
dateadd関数を使用して減算することで実現可能です。

関数を用いて1行で書くならば、以下のようになります。

<AMSHOWDIALOG>%DateAdd("d", -if(weekday(dateserial(Year(Now), Month(Now) + 1, 0)) = 1, 2, if(weekday(dateserial(Year(Now), Month(Now) + 1, 0)) = 7, 1, 0)), dateserial(Year(Now), Month(Now) + 1, 0))%</AMSHOWDIALOG>

また、応用として、任意年月の最終日(土日除く)を出すには、以下のようにすることで可能です。

<AMVARIABLE NAME="var_date" VALUE="2020/10/01" />
<AMSHOWDIALOG>%DateAdd("d", -if(weekday(dateserial(Year(var_date), Month(var_date) + 1, 0)) = 1, 2, if(weekday(dateserial(Year(var_date), Month(var_date) + 1, 0)) = 7, 1, 0)), dateserial(Year(var_date), Month(var_date) + 1, 0))%</AMSHOWDIALOG>

なお、いずれの場合においても、祝日は加味されませんのでご注意ください。

Knowledge記事検索

Knowledge

News・Information