简体   繁体   English

Google表格脚本可为特定单元格添加时间

[英]Google Sheet Script To Add Time To Specific Cell

i need help with a script that will add a time value to a specific cell that contains a time value. 我需要有关脚本的帮助,该脚本会将时间值添加到包含时间值的特定单元格中。 For example, Cell A1 contains a time value like 09:30. 例如,单元格A1包含一个类似于09:30的时间值。 Then when the script runs, it will add 30 minutes to the time in A1 resulting it to be 10:00. 然后,当脚本运行时,它将在A1中增加30分钟的时间,因此该时间为10:00。

Appreciate the help. 感谢帮助。

Edit: Below is my current code 编辑:下面是我当前的代码

function modifyCell(cellName, increase) {
  var range = SpreadsheetApp.getActiveSheet().getRange(cellName)
  var AddTime = -30;
  if (increase) {
    AddTime = 30;
  }
  range.setValue(range.getValue() + AddTime);
}

function increaseLine2() {
  modifyCell("C5", true);
}

function decreaseLine2() {
  modifyCell("C5", false);
}

A Digital Clock for dummies 傻瓜数字时钟

Here's a digital clock that starts with correct time from the Date() function. 这是一个数字时钟,它以Date()函数中的正确时间开始。 But when it's updated it just get 60 seconds added to it by taking the previous datetime value and adding 60*1000 milliseconds to it and formatting the date with the new value rather than using the available actual value. 但是,在更新时,通过采用以前的datetime值并向其添加60 * 1000毫秒,并使用新值(而不是使用可用的实际值)格式化日期来增加60秒的时间。 So it only changes once every minute. 因此,它每分钟仅更改一次。 It also creates and manages a one minute timer for you. 它还为您创建和管理一分钟计时器。

function digitalClockMenu(){
  SpreadsheetApp.getUi().createMenu('Clock Tools')
     .addItem('Start Clock', 'startDigitalClock')
     .addItem('Stop Clock', 'stopDigitalClock')
     .addToUi();
}

function startDigitalClock() {
  if(!isTrigger('addMinute')){
    ScriptApp.newTrigger('addMinute').timeBased().everyMinutes(1).create();
  }
  SpreadsheetApp.getActive().getSheetByName('ClockSheet').getRange('A2').clearFormat().setValue('');
  SpreadsheetApp.getActive().getSheetByName('ClockSheet').getRange('A1').setValue('Starting');
}

function initialTime(){
  var ss=SpreadsheetApp.getActive();
  var sh=ss.getSheetByName('ClockSheet');
  sh.getRange('A2').setValue(Utilities.formatDate(new Date(), Session.getScriptTimeZone(), "HH:mm:ss"));
  sh.getRange('A1').setValue('Running');
}

function addMinute(){
  var ss=SpreadsheetApp.getActive();
  var sh=ss.getSheetByName('ClockSheet');
  var v=sh.getRange('A2').getValue();
  if(v){
    var old=new Date(v).valueOf();
    var minute=60*1000;
    sh.getRange('A2').setValue(Utilities.formatString(Utilities.formatDate(new Date(old + minute), Session.getScriptTimeZone(), "HH:mm:ss")));
  }else{
    initialTime();
  }
}

function stopDigitalClock(){
  deleteTrigger('addMinute');
  SpreadsheetApp.getActive().getSheetByName('ClockSheet').getRange('A1').setValue('Stopped');
}  


function isTrigger(funcName)
{
  var r=false;
  if(funcName)
  {
    var allTriggers=ScriptApp.getProjectTriggers();
    var allHandlers=[];
    for(var i=0;i<allTriggers.length;i++)
    {
      allHandlers.push(allTriggers[i].getHandlerFunction());
    }
    if(allHandlers.indexOf(funcName)>-1)
    {
      r=true;
    }
  }
  return r;
}

function deleteTrigger(funcName)
{
  var triggers=ScriptApp.getProjectTriggers();
  for(var i=0;i<triggers.length;i++)
  {
    if(funcName==triggers[i].getHandlerFunction())
    {
      ScriptApp.deleteTrigger(triggers[i]);
      break;
    }
  }

}

It does what you requested plus a little bit more. 它可以满足您的要求,再加上一点点。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM