今回はGAS(Google Apps Script)に関して書いていきます。
以前もGASに関する記事を書いています(以下リンク)。
上記の記事で、今日の曜日を取得する必要がありました。
Notion検索の条件として曜日を指定するのですが、検索値は「月」「火」「水」…といった感じで、1文字だけ渡す感じです。
GASでどう実装するのか色々と調べてみたのですが、ちょっとした工夫が必要でした。
今回の記事では、その辺りに関して書いていきます。
やりたいこと
記事の冒頭でも触れましたが、プログラム(GAS)を実行した日の曜日を取得します。
取得したいデータは以下7パターンです。
- 月
- 火
- 水
- 木
- 金
- 土
- 日
月曜日に実行したら「月」、火曜日に実行したら「火」を取得します。
「月曜」でもなく「月曜日」でもなく、「月」です。
これは自分がラジオ管理Notionで曜日をそう管理しているためです。
プログラム
今日の曜日を取得する
今日の曜日を取得するプログラムは以下です。
function main() { // 曜日の変換用 const weekdayArray = ['日','月','火','水','木','金','土']; // 今日の日付取得 const date = new Date(); // 曜日の取得 const weekday = date.getDay(); // 曜日の変換 const convertWeekday = weekdayArray[weekday]; // ログ出力 console.log('今日の日付:' + date); console.log('今日の曜日:' + weekday); console.log('曜日の変換:' + convertWeekday); }
上記のプログラムを実行すると、実行した日の曜日がログ出力されます。
全曜日をテスト
せっかくなので、1週間分の曜日が正しく取得できるかテストしてみます。
function main() { // 曜日の変換用 const weekdayArray = ['日','月','火','水','木','金','土']; // 今日の日付取得 const date = new Date(); // カウンタを初期化 let i = 0; // 1週間分ループする while (i < weekdayArray.length) { // 曜日の取得 let weekday = date.getDay(); // 曜日の変換 let convertWeekday = weekdayArray[weekday]; // ログ出力 console.log(date, weekday, convertWeekday); // 1日加算 date.setDate(date.getDate() + 1); // インクリメント i++; } }
上記のプログラムを実行すると、1週間分の曜日をログ出力しています。
プログラムを実行した日から1日ずつ進めて、それぞれの曜日をログ出力しています。
カレンダーを見ながらチェックして、問題ないことを確認しました。
リファレンス
GASはJavaScriptベースとのことで、JavaScriptのリファレンスをリンクしておきます。
Dateオブジェクト
developer.mozilla.org
「new Date()」で今日の日時が取得できます。
getDay
developer.mozilla.org
「getDay」で曜日を取得できます。
曜日に応じて0~6のいずれかの値が返ってきます。
0は日曜日、1は月曜日、2は火曜日…といった感じです。
上記ルールに合わせて、曜日を変換するArrayを用意すればOKです(上記プログラムの「weekdayArray」部分)。
getDate、setDate
developer.mozilla.orgdeveloper.mozilla.org
「getDate」で”日”が取得できます。
”+1”すれば1日加算されます。
おわりに
ということで、「GASで今日の曜日を取得する(1週間分のテストも)」に関してアレコレ書いてみました。
ちょっとした工夫が必要でしたが、取得した曜日(getDay)に応じて変換用のArrayを用意するロジックはスッキリしていて良いなと思いました。
この記事が参考になれば幸いです。
関連記事
GAS(Google Apps Script)に関してはいくつか記事にしています。
気になる記事があればぜひ。
GASの活用事例
GASでNotionからデータ取得してGmailで通知する - 派生記事