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