Java 谷歌表单倒计时时钟

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

我想做一个简单的倒计时的基础上的时间信息输入和30天在未来。。。单元格“Dat”将有输入的时间信息,单元格“Date”将有30天的时间,单元格D将有倒计时。目前我已经能够注册输入的时间和30天的时间。我每次在单元格“time left”中运行此操作时都会出错,请让我知道是否可以帮助我

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”,因此很难对其进行减法或加法。