Если start является датой, тогда ваша проблема:
start + i * day
Если используется оператор +
, левый операнд (Date) является объектом, поэтомупревращается в примитив со строкой подсказки, поэтому +
рассматривается как конкатенация строк, а не число.
Вы можете попробовать:
+start + i * day
, чтобы принудительно start к числу, но тогда результатом будет число, а не дата.Также это не касается вопроса продолжительности дня.Я предлагаю вам сначала скопировать начальную дату, чтобы не изменять ее, а затем увеличить ее на дубликат :
function test() {
var app = SpreadsheetApp;
var ss = app.getActive();
var sheet = ss.getActiveSheet();
var start = sheet.getRange("A1").getValue();
start = new Date(+start);
var end = sheet.getRange("B1").getValue();
var column = 1;
for (var i=0; start <= end; i++) {
sheet.getRange(2, column++).setValue(new Date(start.setDate(start.getDate() + 1)));
}
}