Java 谷歌表单倒计时时钟
我想做一个简单的倒计时的基础上的时间信息输入和30天在未来。。。单元格“Dat”将有输入的时间信息,单元格“Date”将有30天的时间,单元格D将有倒计时。目前我已经能够注册输入的时间和30天的时间。我每次在单元格“time left”中运行此操作时都会出错,请让我知道是否可以帮助我Java 谷歌表单倒计时时钟,java,google-apps-script,google-sheets-api,Java,Google Apps Script,Google Sheets Api,我想做一个简单的倒计时的基础上的时间信息输入和30天在未来。。。单元格“Dat”将有输入的时间信息,单元格“Date”将有30天的时间,单元格D将有倒计时。目前我已经能够注册输入的时间和30天的时间。我每次在单元格“time left”中运行此操作时都会出错,请让我知道是否可以帮助我 function onEdit(event) { var timezone = "GMT-04:00"; var timestamp_format = "M/dd/yyyy"; // Timestamp Form
function onEdit(event)
{
var timezone = "GMT-04:00";
var timestamp_format = "M/dd/yyyy"; // Timestamp Format.
var updateColName = "Name";
var updateColName2 = "Address";
var updateColName3 = "Address";
var timeStampColName = "Date";
var timeStampColName2 = "Dat";
var timeStampColName3 = "Date";
var timeStampColName4 = "Time";
var updateColName4 = "Address";
var timeStampColName5 = "Time Left";
var updateColName5 = "Address";
var sheet2 = event.source.getSheetByName('Sheet1');
var actRng = event.source.getActiveRange();
var editColumn = actRng.getColumn();
var index = actRng.getRowIndex();
var headers2 = sheet2.getRange(1, 1, 1,
sheet2.getLastColumn()).getValues();
var headers4 = sheet2.getRange(1, 1, 5,
sheet2.getLastColumn()).getValues();
var headers5 = sheet2.getRange(1, 1, 4,
sheet2.getLastColumn()).getValues();
var dateCol2 = headers2[0].indexOf(timeStampColName2);
var dateCol4 = headers4[0].indexOf(timeStampColName4);
var dateCol5 = headers5[0].indexOf(timeStampColName5);
var updateCol2 = headers2[0].indexOf(updateColName2); updateCol2 =
updateCol2+1;
var updateCol4 = headers4[0].indexOf(updateColName4); updateCol4 =
updateCol4+1;
var updateCol5 = headers5[0].indexOf(updateColName5); updateCol5 =
updateCol5+1;
if (dateCol2 > -1 && index > 1 && editColumn == updateCol2)
{ var cell2 = sheet2.getRange(index, dateCol2 + 1);
var date2 = Utilities.formatDate(new Date(), timezone,
timestamp_format);
cell2.setValue(date2);
}
if (dateCol4 > -1 && index > 1 && editColumn == updateCol4)
{ var cell4 = sheet2.getRange(index, dateCol4 + 1);
var date = new Date();
var secondDate = new Date(date.setDate(date.getDate()+ 30));
cell4.setValue(secondDate);
Logger.log(secondDate);
}
if (dateCol5 > -1 && index > 1 && editColumn == updateCol5)
{ var cell5 = sheet2.getRange(index, dateCol5 + 1);
var future = Utilities.formatDate(new
Date(date.setDate(date.getDate()+ 30)), timezone, timestamp_format);
//var future = new Date(); // get NOW
//future.setDate(future.getDate() + 30); //Add the specified days to
the current time
cell5.setFormula( '=' + secondDate + '- now()');
下面是我试图运行代码的示例链接
如果你还需要我可能错过的任何东西,请告诉我
提前感谢,
Martin您可以在示例工作表的
左时间列(D3)中使用公式
=天(日期值(A3+30),现在())
然后使用fill
句柄。小正方形是所选单元格的右下角-用公式填充该列。这将给出Dat+30天
和NOW()之间的剩余天数
你得到的错误是什么?只是单元格中的一条错误消息。它太逐字逐句地记录信息,例如“9月12日星期四下午12:00:00”,因此很难对其进行减法或加法。