今月の月末の日付と曜日を取得したい
このように
月末は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に入れて ログに出す |
