Попытка установить ячейку в значение функции, чтобы получить разницу в два раза - PullRequest
0 голосов
/ 16 мая 2019

Я искал функцию, обеспечивающую разницу в два раза, и, к счастью, у одного из Пользователей здесь была отличная функция, которая выглядела прекрасно. Код ссылки

function getDaysHoursAndMinutes(){
  var hd=new Date('2017-11-21T20:23:26+0000').valueOf();
  var td=new Date().valueOf();
  var sec=1000;
  var min=60*sec;
  var hour=60*min;
  var day=24*hour;
  var diff=td-hd;
  var days=Math.floor(diff/day);
  var hours=Math.floor(diff%day/hour);
  var minutes=Math.floor(diff%day%hour/min);
  Logger.log('%s days %s hours %s minutes',days,hours,minutes);
}

Так что я немного подправил его по своему вкусу.

function getDaysHoursAndMinutes(t1,t2){
  var hd=new Date(t1).valueOf();
  var td=new Date(t2).valueOf();
  var sec=1000;
  var min=60*sec;
  var hour=60*min;
  var day=24*hour;
  var diff=td-hd;
  var days=Math.floor(diff/day);
  var hours=Math.floor(diff%day/hour);
  var minutes=Math.floor(diff%day%hour/min);

Создано две переменные, которые можно поместить в функцию. Я сделал это, чтобы я мог сделать эти переменные getValue(range) Но, возможно, я что-то пропустил или недостаточно хорошо понимаю код, чтобы точно знать, как он работает. Вот формат, для которого я его получал.

function setValue(cellName, value) {
  SpreadsheetApp.getActiveSpreadsheet().getRange(cellName).setValue(value);
}
function getValue(cellName) {
  return SpreadsheetApp.getActiveSpreadsheet().getRange(cellName).getValue()
}
setValue('F' + passiveRow, getDaysHoursAndMinutes(getValue('D' + passiveRow),getValue('E' + passiveRow)));

passiveRow в данном случае это просто одно число, которое является строкой, соответствующей некоторым критериям. Допустим, 2

Поэтому я подумал, просто получив значения D2 и E2, значения, которые выглядят следующим образом: 5/15/2019 21:17:15, 5/15/2019 21:18:33, они будут правильно внедрены в формулу, и формула вернется обратно в мою функцию setValue. Таким образом я logger.logged это и Logger.log (minutes = 1), как это должно. Я попытался войти в систему несколько раз, и я получил номера, которые были правильными. Но внутри строки F, внутри правильного поля, она дает «неопределенное» вместо числа, которое мне дает Logger.log в функции разницы во времени. Я чувствую, что это очень очевидное упущение, которого я просто не вижу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...