@Igor_09

Как рассчитать разницу во времени между двумя ячейками?

С программирование на Google apps script знаком очень поверхностно, на основе своих знаний написал такой код (сразу скажу работает не корректно):
function ResponseTime(){
  var sheet = SpreadsheetApp.getActiveSpreadsheet();
  var sheetName = SpreadsheetApp.getActiveSpreadsheet().getSheetName();
  var range = sheet.getActiveRange();
  var data = range.getValues(); 
  if(sheetName == "Вопросник" && range.getColumn() == 17){
    for (var i=0;i < data.length;i++){
      if (data[i][0]>0) {
        (data[i][0])=Date.parse(data[i][0]); 
        var time1 = (data[i][0])}
      else {
      }
    }
  }
  if(sheetName == "Вопросник" && range.getColumn() == 18){
    for (var i=0;i < data.length;i++){
      if (data[i][0]>0) {
        (data[i][0])=Date.parse(data[i][0]); 
        var time2 = (data[i][0])}
      else {
      }
    } 
   for (var i=0;i < data.length;i++){
      if (data[i][0]>0 && time2>0) {
        let date = new Date(time2);
        range.offset(i,+1,1,1).setValue(date.getHours()+':'+date.getMinutes());}
      else {
      }
   }
  }
}


У меня в таблице в столбцах 17 и 18 идут две даты, как рассчитать разницу между ними особо не нашел, поэтому решил сначала из обеих ячеек получить таймстамп с помощью Date.parse(str), далее уже найти разницу в миллисекундах и преобразовать ее в "часы:минуты". Но в итоге что планировал, получить не удалось. Я так понимаю основная проблема с методом .getColumn() он позволяет работать с определенным диапазоном, то есть только с одним столбцом и мне не подходит. Подскажите на какой метод его заменить? и также я предполагаю что много лишнего написал в коде, может его как-то можно упростить, что-то выбросить? Возможно я изначально пошел не по тому пути и все можно реализовать намного проще? Буду рад любым предложениям.
  • Вопрос задан
  • 1523 просмотра
Пригласить эксперта
Ответы на вопрос 2
@robprane
Все уже придумано. https://support.google.com/docs/answer/6055612
Ответ написан
Комментировать
ProgrammerForever
@ProgrammerForever Куратор тега Google Sheets
Учитель, автоэлектрик, программист, музыкант
Может вам проще на формулах сделать? Разница между датами - это прям конкретная разница, т.к. даты - это количество дней с определенной даты.
Опишите словами - что нужно сделать? И приложите табличку - это ускорит решение.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы