应用程序脚本步进月份和日期格式

App Scripts stepping months and date formatting

我是 App Script 的新手,请多关照!

我有一个包含开始日期和月数的 table,我需要列出从开始日期到月数的每个循环月。

我正在努力解决 2 个问题:

  1. 数组中的第一个日期似乎在我循环日期时更新
  2. 这些格式在 UNIX 中,尽管阅读了大量内容,但我仍然无法使它们发挥作用!

非常感谢您的帮助!

输入文件(https://i.stack.imgur.com/2EJ65.png)

输出文件(https://i.stack.imgur.com/0DH5R.png)

控制台日志(https://i.stack.imgur.com/NVqck.png)

var ss = SpreadsheetApp.getActiveSpreadsheet();

// Get Data sheet
var rawData = ss.getSheetByName('Sheet3');

// Get a date and set it as a date format
var start = new Date(rawData.getRange("B2").getValues());

console.log(start);

// Get Months
var months = rawData.getRange("C2").getValues();

// Define dates array
var dates = [];

// Add first date
const startDate = start
dates.push([startDate]);

//Add rest of dates dates in a loop
for (var run = 1;run < months;run++) {
  //get the last pasted month name
  var lastMonth = start.getMonth();
  //push next month
  dates.push([start.setMonth(lastMonth+1)]);
}

// Get processedData sheet
var processedData = ss.getSheetByName('sheet2');

// Post the outputArray to the sheet in a single call
console.log(start);
console.log(startDate);
console.log(dates);
console.log(dates.length);
console.log(dates[0].length);

processedData.getRange(1,1,6,1).setValues(dates);
 
}

按月递增日期和设置格式

function lfunko() {
  const ss = SpreadsheetApp.getActive();
  let dt = new Date();
  let start = new Date(dt.getFullYear(),dt.getMonth(),dt.getDate());//need to change back to your value
  const months = 10;//need to change back to your value
  let dates = [];
  dates.push([start]);
  for (let run = 1; run < months; run++) {
    dates.push([new Date(start.getFullYear(),start.getMonth() + run, start.getDate())])
  }
  ss.getSheetByName('Sheet0').getRange(1, 1, dates.length).setValues(dates).setNumberFormat("mm/dd/yyyy");//changed sheet name
  Logger.log(dates);
}