実現したい事
土日、祝日を抜いて営業日で10日後を指定したい。
困っている事
googleカレンダーを用いて、今日の日付から12日後(必ず土日が1回入るので12日後までを指定)までの間のイベント数を数えたいが、
下記のコードではイベント数ではなく単なる日にちが計算されてしまい、console.log(eventsNumber.length)
の実行結果が「13」になってしまいます。
解決したい事
まずは console.log(eventsNumber.length);
の所で祝日のイベントのみカウントし「2」 (9月19日以降の祝日2回をカウント)と表示されるようにしたいです。
function date (saveSheet) { const date = new Date(2021, 8, 19); const week_list = new Array('(日)', '(月)', '(火)', '(水)', '(木)', '(金)', '(土)'); const weekNum = date.getDay(); const week = week_list[weekNum]; const cal = CalendarApp.getCalendarById('ja.japanese#holiday@group.v.calendar.google.com'); let eventsNumber = []; for (i=0; i <= 12; i++) { date.setDate(date.getDate()+ 1); if (cal.getEventsForDay(date) !== null ){ eventsNumber.push('i'); } } console.log(eventsNumber.length); let afterDate = null; if ( weekNum == 0 ) { let afterDate = date.setDate(date.getDate() + 12 + eventsNumber) } else if ( weekNum == 6 ) { let afterDate = date.setDate(date.getDate() + 13 + eventsNumber) } else { let afterDate = date.setDate(date.getDate() + 11 + eventsNumber); } console.log(afterDate); // let afterDate = date.setdate(date.getDate() + eventsNumber) let setDate = Utilities.formatDate(date, 'Asia/Tokyo', 'MM/dd'); // console.log(setDate); let service = `※ ${setDate}${week}17:00までのご発注(最小ロットを除く)に限り、①②③④のうちお好みのオプション1つを無料サービス `; console.log(service); saveSheet.getRange(24, 2, 1, 1).setValue(service); return { service : service } }
イベント数が無事カウント出来るようになったら、それ以降のコードもきちんと書く予定です。後半も、土曜日だった場合と日曜日だった場合、そうでない場合に分けてプラス祝日の数を足して、営業日10日後を出す予定で書いておりますが、うまく機能しておりませんのでもし良かったら下段についてもアドバイス頂けますと嬉しいです。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/09/28 01:16