すみません、
https://teratail.com/questions/0nfrsgonfdpkg3
でさせていただいた質問の続きです。
GASで、日付が入った行を取得
→ 取得した日付を1日前、3日前、・・
と計算して出した日付をシートに書き込むことを想定しています。
GAS
1function Dayire() { 2 const ss = SpreadsheetApp.getActiveSpreadsheet(); 3 const Sheet = ss.getSheetByName('スケジュール管理表'); 4 const MasterHiduke = Sheet.getDataRange().getValues(); 5 6 ///未作業の行だけ抜き出す+行番号 7 const HeaderHiduke = MasterHiduke.shift(), cIndex = {}; 8 for (var i = 0; i < HeaderHiduke.length; i++) cIndex[HeaderHiduke[i]] = i; 9 10 //作業状態が未作業の行だけを取得して配列化 11 const FileHiduke = MasterHiduke 12 .filter(function(e){return e[cIndex['日付確定']] === '未作業'}) 13 .map(function(e){ 14 const Columns = [ 15 16 cIndex['行番号'], 17 cIndex['開催日'], 18 19 ], row = []; 20 for (var i = 0; i < Columns.length; i++) row.push(e[Columns[i]]); 21 return row; 22 }); 23 console.log(FileHiduke); 24 25 for( var i = 0 ; i< FileHiduke.length ; i++){ 26 //開催日 27 const Kaisaibi0 = FileHiduke[i][1]; 28 var Kaisaibi = Utilities.formatDate( Kaisaibi0, 'Eastern Daylight Time', 'yyyy/MM/dd'); 29 30 //1日前 31 var D1mae0 = Kaisaibi0; 32 D1mae0.setDate(D1mae0.getDate() - 1); 33 34 var D1mae = Utilities.formatDate( D1mae0, 'Asia/Tokyo', 'yyyy/MM/dd'); 35 console.log('[開催日0] ',Kaisaibi0); 36 console.log('[D1mae0] ',D1mae0); 37 console.log('[開催日もと] ',Kaisaibi); 38 39 //3日前 40 var D3mae0 = Kaisaibi0; 41 D3mae0.setDate(D3mae0.getDate() - 1); 42 var D3mae = Utilities.formatDate( D3mae0, 'Asia/Tokyo', 'yyyy/MM/dd'); 43 console.log('[開催日0] ',Kaisaibi0); 44 console.log('[D3mae0] ',D3mae0); 45 console.log('[開催日もと] ',Kaisaibi); 46 47 //7日前 48 var D7mae0 = Kaisaibi0; 49 D7mae0.setDate(D7mae0.getDate() - 7); 50 var D7mae = Utilities.formatDate( D7mae0, 'Asia/Tokyo', 'yyyy/MM/dd'); 51 console.log('[開催日0] ',Kaisaibi0); 52 console.log('[D7mae0] ',D7mae0); 53 console.log('[開催日もと] ',Kaisaibi); 54 55 } 56} 57 58
この結果が
18:30:23 情報 [ [ 74, Thu Jul 21 2022 11:00:00 GMT-0400 (Eastern Daylight Time) ] ] 18:30:23 情報 [★最初の開催日0] Thu Jul 21 2022 11:00:00 GMT-0400 (Eastern Daylight Time) 18:30:23 情報 [1日前] 18:30:23 情報 [開催日0] Wed Jul 20 2022 11:00:00 GMT-0400 (Eastern Daylight Time) 18:30:23 情報 [D1mae0] Wed Jul 20 2022 11:00:00 GMT-0400 (Eastern Daylight Time) 18:30:23 情報 [開催日もと] 2022/07/21 18:30:23 情報 [3日前] 18:30:23 情報 [開催日0] Tue Jul 19 2022 11:00:00 GMT-0400 (Eastern Daylight Time) 18:30:23 情報 [D3mae0] Tue Jul 19 2022 11:00:00 GMT-0400 (Eastern Daylight Time) 18:30:23 情報 [開催日もと] 2022/07/21 18:30:23 情報 [7日前] 18:30:23 情報 [開催日0] Tue Jul 12 2022 11:00:00 GMT-0400 (Eastern Daylight Time) 18:30:23 情報 [D7mae0] Tue Jul 12 2022 11:00:00 GMT-0400 (Eastern Daylight Time) 18:30:23 情報 [開催日もと] 2022/07/21
となりい、Kaisaibi0の値が計算する度に影響を受けてしまっています。
constで宣言していても、再代入がかかってしまうものなのでしょうか?
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/04/18 00:53