Вычтите два значения из ячеек текущей строки и выведите это значение в новую строку ячеек (скрипт Google) - PullRequest
0 голосов
/ 11 июля 2020

Я делаю Google Таблицу, которая будет отслеживать время выхода часов. Я хочу добавить столбец e, который будет рассчитывать количество отработанных часов с учетом времени начала (столбец c) и времени окончания (столбец d). Как я могу go реализовать это? Вот мой код:

function setValue(cellName, value){
  SpreadsheetApp.getActiveSpreadsheet().getRange(cellName).setValue(value);
}

function getValue(cellName){
  return SpreadsheetApp.getActiveSpreadsheet().getRange(cellName).getValue();
}
function getNextRow(){
  return getCurrentRow() + 1;
}
function getCurrentRow(){
  return SpreadsheetApp.getActiveSpreadsheet().getLastRow();
}
function addStart(a, b, c, d){
  var row = getNextRow();
  setValue('A' + row, a); // employee name row
  setValue('B' + row, b); // date row
  setValue('C' + row, c); // clock in time row
}
function addEnd(endTime) {
  var row = getCurrentRow();
  setValue('D' + row, endTime); // 
}
function updateRow(e){
  // declare row e
  var row = getCurrentRow();
  setValue('E' + row, e) 
}

function punchIn(){
  addStart("Faiq Ashraf", new Date(), date(), "")
}
function punchOut(){
  addEnd(date());
}
function totalHours(){
  // function used to update column e with our total hours worked
  var total = getCurrentRow().addEnd(d) - getCurrentRow().addStart(c)
  updateRow(total);
}
function date(){
  var dd = new Date();
  var currentTime = dd.toLocaleTimeString();
  return currentTime
}

1 Ответ

1 голос
/ 11 июля 2020

Я на самом деле использую решение, которое в настоящее время находится в таблицах Google, которое я сделал именно для этой цели, и вам вообще не нужно использовать пользовательские функции.

Просто поместите следующую функцию в строку E в вашем примере :

=Hour(D1-C1)+(Minute(D1-C1)/60)
...