Google Apps Script

ちょっとした算数の問題だった。Google Apps Scriptで次の月曜日を取得するには?

ちょっとした算数の問題だった。Google Apps Scriptで次の月曜日を取得するには?
私には、月曜日にメールを送る作業があります。
今までは、新規作成 ⇒ 宛先入力 ⇒ 件名・本文入力 ⇒ ファイルを添付 ⇒ 送信と、手作業でやってきました。
ふと、思い立ちました。「これも自動化できないか?」と。
実行するには、次の月曜日を求める処理が欠かせません。
と、いうわけで、そのロジックを考えてみました。

 

次の月曜日を取得するには?

コードは次のとおり。
Day.jsライブラリを使っています。

function myFunction() {  
  const Today = dayjs.dayjs();
  let NextMonday = '';
  if (Today.day() == 0) {
    NextMonday = Today.add(1,'day').format('M月D日')
  } else {
    NextMonday = Today.add(8 - Today.day(),'day').format('M月D日')
  }
  console.log(NextMonday);
}

 

どんなロジック?

変数を表にまとめてみました。

今日の曜日 次の月曜日までの日数 day()の戻り値
日曜日 1日 0
月曜日 7日 1
火曜日 6日 2
水曜日 5日 3
木曜日 4日 4
金曜日 3日 5
土曜日 2日 6

日曜日以外は「8」から「day()の戻り値」を引けば、次の月曜日までの日数が求められます。
なので、単純に今日が日曜日なら1日加算、それ以外なら「8-day()の戻り値」を加算しています。
「次の」ではなく「翌週の」月曜日なら、8日後になるのでif文で分岐せずに「8-day()の戻り値」で処理すれば良いです。

 

まとめ

Google Apps Scriptで次の月曜日を取得するには「8-day()の戻り値」を加算すれば、ほぼ完成です。日曜日は扱い方によって処理が分かれます。
月曜日に送るメール作成時間が圧縮されて、とても満足しています。

-Google Apps Script
-, , , , ,