Я пытаюсь рассчитать разницу в днях между двумя датами
Это будет, NOW () - дата, указанная в данных. В приведенном ниже примере (2019-03-08 - 2018-10-31) = 128 дней для первой строки
Dates Days Regions
2018-10-31 128 Alberta
2018-10-31 128 Alberta
2018-11-8 120 Alberta
2018-11-18 110 Alberta
набор данных выглядит так, как указано выше
Дело в том, что я пытаюсь рассчитать это значение всякий раз, когда пользователь обновляет "Даты"колонка.
Ниже приведен код, который я пробовал
function dategenerator() {
const numberofHeaderRows=1
var spreadsheet = SpreadsheetApp.getActiveSheet()
var range = spreadsheet.getRange("A:A")
var legitrange = spreadsheet.getDataRange().getValues()
var rangeValuesInclHeaders = range.getValues()
var rangeValuesExclHeaders = rangeValuesInclHeaders.slice(numberofHeaderRows)
var dates=rangeValuesExclHeaders.map(function(row){return row[0]})
for (var rowNumber=numberofHeaderRows;rowNumber<rangeValuesInclHeaders.length;rowNumber++){
var row = rangeValuesInclHeaders[rowNumber]
if (row[0]!==""){
var dates = new Date(row[0])
var datesnew = new Date()
var t1 = datesnew.getTime()
var t2 = dates.getTime()
var diffInDays = Math.floor((t1 - t2)/(1000*60*60*24))
Logger.log(diffInDays)
spreadsheet.getRange(1,2,legitrange.length,1).setValue(diffInDays);
}
}
}
Я вижу правильные значения в "diffInDays". Однако, это только получение последнего значения, как показано ниже ...
Dates Days Regions
2018-10-31 110 Alberta
2018-10-31 110 Alberta
2018-11-8 110 Alberta
2018-11-18 110 Alberta
Как мы получим эту работу правильно, чтобы она могла добавить вычисленное значение к нужной строке дат?