LANG SELRCT

コードを書く場所についてはこちら

2018年1月22日月曜日

指定した日付けからその月末と曜日を取得する


今月の月末の日付と曜日を取得したい


このように


月末は31とは限らず
30だったり
28だったり
29だったりする


取得方法

  • 月末の取得
    • new Date(年, 月, 日) の日を 0 にすると前日を取得することを利用する
    • 来月の0日は来月の1日の前日になる
    • つまり今月の末日になる
  • 曜日の取得
    • 日本語で全曜日を用意する
    • .getDay()で曜日番号を取得する
    • その番号の位置にある日本語の曜日を取得する




コード.gs
var SEVEN_DAYS = "日月火水木金土";
function get_monthend() {
  var add = 1;
  var now = new Date();
  var this_year = now.getFullYear();
  var this_month = now.getMonth();
  var target_date = 0;
  var new_date = new Date(this_year, this_month + add, target_date);
  var date = Utilities.formatDate(new_date, 'Asia/Tokyo', 'yyyy-MM-dd');
  var day_num = new_date.getDay();
  var day = SEVEN_DAYS[day_num];
  var result = [date, day]
  Logger.log(result);
}
意訳
曜日を文字列で用意しておく
この機能がやること
当月から何ヶ月先にするか指定する(1なら翌月)
現在日時を取得する
年を取得する
月を取得
日付を0にして(0にすると1日の前日を取得する)
翌月の0日(当月の末日)を取得して
yyyy-MM-dd形式にして
曜日の番号を取得して
SEVEN_DAYSの中から曜日を取得して
resultに入れて
ログに出す




参考

JavaScript setDate() Method
https://www.w3schools.com/jsref/jsref_setdate.asp