質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

Q&A

解決済

1回答

569閲覧

指定日以降のカレンダーを作成したい

TopingMado

総合スコア25

Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

0グッド

0クリップ

投稿2020/04/06 10:57

前提・実現したいこと

リリース日(変数realseDate)以降の月、日付、曜日を一括で入力する(画像内赤枠の3行)コードを作成したいです。
しかし、月の入力は月の頭か、リリース日のみ記入したいですが、配列の操作がうまく行かなくて、リリース日だけ出力されています。
理想のイメージ
イメージ説明

該当のソースコード

GAS

1//realseDateは日付を格納した変数、LastColはシートのLastColumn、SetDay、SetDate、monthは空の配列 2function CountEndDate(realseDate,SetDay,SetDate,month,LastCol){ 3//入力用の曜日配列 4 const YobiList= ["日", "月", "火", "水", "木", "金", "土"]; 5 var StartDate = new Date(realseDate.setDate(realseDate.getDate()-1)); 6//最終columnまでの日付を加算 7for(var i=0;i<LastCol;i++){ 8 var CountDate = new Date(StartDate.setDate(StartDate.getDate()+1)); 9 var Yobi = CountDate.getDay(); 10 var monthDate = Utilities.formatDate(CountDate, 'Asia/Tokyo', 'M月'); 11 var CountDate = Utilities.formatDate(CountDate, 'Asia/Tokyo', 'd日'); 12 var CountYobi = YobiList[Yobi]; 13 SetDate.push(CountDate); 14 SetDay.push(CountYobi); 15//最初の判定でリリース日の月を配列の頭に追加 16 if(month[0]==""){ 17 month.unshift(monthDate); 18 } 19//それ以降は月の頭のみ、配列に追加、他は空白を追加、しかしここの実行されていない様子 20 else if(month[0]!="" && CountDate==1){ 21 month.push(monthDate); 22 } 23 else { 24 month.push(""); 25 } 26 27 } 28}

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

javascript

1//realseDateは日付を格納した変数、LastColはシートのLastColumn、SetDay、SetDate、monthは空の配列 2function CountEndDate(realseDate,SetDay,SetDate,month,LastCol){ 3//入力用の曜日配列 4 const YobiList= ["日", "月", "火", "水", "木", "金", "土"]; 5 var StartDate = new Date(realseDate.setDate(realseDate.getDate()-1)); 6//最終columnまでの日付を加算 7for(var i=0;i<LastCol;i++){ 8 var CountDate = new Date(StartDate.setDate(StartDate.getDate()+1)); 9 var Yobi = CountDate.getDay(); 10 var monthDate = Utilities.formatDate(CountDate, 'Asia/Tokyo', 'M月'); 11 var CountDate = Utilities.formatDate(CountDate, 'Asia/Tokyo', 'd日'); 12 var CountYobi = YobiList[Yobi]; 13 SetDate.push(CountDate); 14 SetDay.push(CountYobi); 15//最初の判定でリリース日の月を配列の頭に追加 16 if(month[0]==""){ 17 month.unshift(monthDate); 18 } 19//それ以降は月の頭のみ、配列に追加、他は空白を追加、しかしここの実行されていない様子 20 else if(month[0]!="" && CountDate=="1日"){ 21 month.push(monthDate); 22 } 23 else { 24 month.push(""); 25 } 26 27 } 28}

今後は全体のコードを書いてくださると助かります。

投稿2020/04/06 12:47

papinianus

総合スコア12705

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問