我需要一个脚本帮助,该脚本将时间值添加到包含时间值的特定单元格。例如,Cell A1包含时间值,如09:30。 然后当脚本运行时,它将在A1中添加30分钟,结果是10:00。
感谢帮助。
编辑:下面是我当前的代码
package firstPro;
import java.util.List;
public class Dummy {
private List<String> names;
public Dummy(List<String> names) {
this.names = names;
}
public List<String> getNames() {
return this.names;
}
}
答案 0 :(得分:0)
这是一个数字时钟,以Date()函数的正确时间开始。但是当它被更新时,它只需要通过获取前一个日期时间值并向其添加60 * 1000毫秒并使用新值格式化日期而不是使用可用的实际值来添加60秒。所以它每分钟只改变一次。它还为您创建和管理一分钟计时器。
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;
}
}
}
它会按照您的要求加上更多。