首页 > 解决方案 > 如何将日期值总结为一个数字(天数总和)?

问题描述

在 Google 表格中,我有一个带有开始日期的活动列表,以及一个指定该活动持续时间的数字(以天为单位)。我需要使用 Google Apps 脚本将这些数字与日期相加,以获得活动的截止日期。

我已经尝试过在这个问题中发布的解决方案:Adding Days to a Date - Google Script

该解决方案的问题是电子表格的脚本编辑器无法识别“日期”类,因此我无法实例化日期元素。

直接求和仅将日期和数字作为字符串。尝试上述方法会导致#NUM!我要转换的单元格出现错误。

编辑:

我已经尝试过了,其中 V3 保存了我想要求和的日期:

var fecha= new Date (ss.getSheetByName(camada).getRange("V3").getValue());
var fecha2= new Date();

fecha2.setDate(fecha.getDate() + 1);

ss.getSheetByName(camada).getRange("W3").setValue(fecha2);

它显然有效,但问题是 V3 成立5/13/2019并且返回的日期是4/14/2019,所以它多一天 (13->14) 但它少一个月 (5->4)。

标签: google-apps-scriptgoogle-sheets

解决方案


答案为日期添加天数 - Google 脚本中。

三件事:

  • 不要定义fecha2为 new Date(); 这给它没有上下文,而是返回今天的日期。
  • 设 fecha2 为变量名
  • 正确的说法是var fecha2 = new Date(fecha.setDate(fecha.getDate() + 1));

function so55593876() {
  var ss = SpreadsheetApp.getActiveSheet();
  var range = ss.getRange("C3");
  var value = range.getValue();
  Logger.log("DEBUG: Date Range: "+range.getA1Notation()+", Date value: "+value);//DEBUG
  var date = new Date(value); // make the sheet value a date object
  Logger.log("DEBUG: new date(value) = "+date);//DEBUG
  var dateTime = new Date(date.getTime()+1*3600000*24); 
  Logger.log("DEBUG: Method 1 (add one day = getTime()+1*3600000*24) = "+dateTime);//DEBUG  
  var dateDate = new Date(date.setDate(date.getDate()+1));
  Logger.log('DEBUG: Method 2 (add one day = getdate()+1) = '+dateDate);//DEBUG
  ss.getRange("C4").setValue(dateDate);
  Logger.log("<<<<<<<<<<<FETCHA>>>>>>>>>>>>>");
  var fecha = new Date(value); // make the sheet value a date object
  Logger.log("DEBUG: fecha: new date(value) = "+fecha);//DEBUG
  var fecha2= new Date(); // note there are no parameters; this will return TODAY's date
  Logger.log("DEBUG: fecha2 = "+fecha2);//DEBUG
  var fecha3 = fecha2.setDate(fecha.getDate() + 1);
  Logger.log("DEBUG: fecha3 = "+fecha3); //DEBUG
  var fecha2 = new Date(fecha.setDate(fecha.getDate() + 1));
  Logger.log("DEBUG: fecha2 = "+fecha2); //DEBUG
  ss.getRange("C5").setValue(fecha2);
}

我已将所有Logger语句保留在代码中,以便您可以识别脚本不同状态下的各种值。


推荐阅读