はしがき
Google Apps Scriptは、非エンジニアでも業務に活用する機会が比較的訪れやすい言語ではないでしょうか。
本記事は、業務にスプレッドシートやGoogleフォームを活用している方を対象に、業務の効率化や自動化に使えそうなスクリプトをまとめています。
少しずつ更新予定です。
このスクリプトは、スプレッドシートと連動して動くコンテナバインド型スクリプトを想定しています。
GASでの日付操作
日付から要素を取り出す
Google App Scriptで、日付の中の要素を取得したいときに使用できる関数を作成しました。
引数として日付をinputdateの中に入れると、その中の様々な要素を取り出せます。
function getDateComponents(inputdate){
const daydict = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"]; //曜日を文字列で取得する場合の変換用配列
const input = inputdate;
const year = input.getFullYear(); // 年を取得
const month = input.getMonth() + 1; //月を取得
const date = input.getDate(); //日を取得
const day = input.getDay(); //曜日を取得
const daystring = daydict[day];
const firstDayOfMonth = new Date(year, input.getMonth(), 1); //月内の最初の日を取得
const dayOfWeek = firstDayOfMonth.getDay(); //月内の最初の日の曜日を取得
// 月曜日始まりに調整するオフセット
const offset = (dayOfWeek === 0) ? 6: dayOfWeek - 1; // 月の最初の日が月曜日でない場合、その週を第0週として扱う
// 今日の日付と今月の最初の日の差を計算(日数のミリ秒単位)
const diffInDays = Math.floor((input - firstDayOfMonth) / (1000 * 60 * 60 * 24));
//今月の最初の日の曜日と差を考量して何週目かを計算
const weekOfMonth = Math.ceil((diffInDays + offset) / 7);
return{
year:year,
month:month,
date:date,
day:day,
daystring:daystring,
week:weekOfMonth
};
}
以上で、日付から年、月、日、曜日(数字と文字列)、月内の何週目かが取り出せます。
週の始まりが日曜日で良い場合は、offsetの記述はまるまる不必要なので削除してください。
GASでは、月は1月から0はじまり、曜日は日曜日から0はじまりで数字が振られています。
日付を取得する
//今日の日付を取得する
const today = new Date();
//特定の日付を取得する
let year = 2024;
let month = 5;
let date = 1;
const thedate = new Date(year, month-1, date);
こちらもどうぞ