Apps Script公式リファレンス: Apps Script Reference |障害・課題追跡: IssueTracker |Google Workspace: Status Dashboard - Summary

2017年11月23日木曜日

指定した日付けの週初と週末を取得する


今週の日曜日と土曜日の日付けを

11/19 - 11/25

の形で取得しようとした時に書いたコードです




コード.gs
function week_start_and_end() {
  var today = new Date();
  var this_year = today.getYear();
  var this_month = today.getMonth();
  var date = today.getDate();
  var day_num = today.getDay();
  var this_sunday = date - day_num;
  var this_saturday = this_sunday + 6;
  var start_date = new Date(this_year, this_month, this_sunday);
  start_date = format_date(start_date);
  var end_date = new Date(this_year, this_month, this_saturday);
  end_date = format_date(end_date);
  var target_week = start_date + " - " + end_date;
  Logger.log(target_week);
}

function format_date(date){
  return Utilities.formatDate(date, 'Asia/Tokyo', 'MM/dd');
}
意訳.gs
この処理は以下を実行する
現在日時を取得
年を取得
月を取得
日付けを取得
曜日の番号を取得→ 0 は日曜日で 1は月曜日~ 6 は土曜日
今日の日付から今日の曜日番号を引いて今週の日曜日の日付を取得
今週の日曜日に6を足して今週の土曜日の日付を取得
今週の日曜日をnew Date(年, 月, 日)にしてから
MM/ddの形式にする
今週の土曜日をnew Date(年, 月, 日)にしてから
MM/ddの形式にする
今週の日曜日 - 今週の土曜日の形にして
ログに出す


この処理は以下を実行する
渡されたdateをMM/ddの形にフォーマットして返す




var today = new Date("2017/11/1");
などとすると指定した日付けの週初と週末を取得できます


Utilities.formatDate(date, 'Asia/Tokyo', 'MM/dd')
はGoogle Apps Scriptのmethodです



参考
https://developers.google.com/apps-script/reference/utilities/utilities#formatDate(Date,String,String)

Latest post

Google Slidesで現在選択している表に値を入れたい4 - Insert values into the active table4

以下リンク先の2と3では、それぞれ行の追加と削除を行いました。 In the linked articles below, rows were added in example 2 and deleted in example 3. Google Slidesで現在選択している表...