如何第一次在列中显示日期?

时间:2012-08-14 18:11:33

标签: google-apps-script

我是JavaScript和Google Speardsheet的新手,我需要一些帮助。 我在google speardsheet中有一个表格,在L列中 - 我有日期。 该表按日期排序,从最旧到最新。

现在,我需要2个功能 - 第一个 - 它将返回表中存在的最后一个(=最新)日期。 第二个 - 它将返回最新日期出现在表格中的第一行。

我成功编写了第一个函数(名为:FindLastDate),但我对第二个函数有问题。 请查看我的代码并提出建议:

   function TheFirstRowWithThisDate() {
    var sheet = SpreadsheetApp.getActiveSheet();
    var dataRange = sheet.getDataRange().getValues();
    var i = 0;
    var a = 0;
    d = FindLastDate();
    while (a==0) {
    if  (dataRange[d][11]==dataRange[i][11])
    { var a=i
    }
    i=i+1;
    }
    return a 
    }

1 个答案:

答案 0 :(得分:0)

由于许多原因,日期处理起来很棘手 - 电子表格单元格的格式,电子表格的时区和脚本都是其中的一部分。

所以,根据你的要求,我会用艰难的方式解析日期。

function TheFirstRowWithThisDate() {
  var sheet = SpreadsheetApp.getActiveSheet();
  var dataRange = sheet.getDataRange().getValues();
  var d = FindLastDate(); 
  var lastDate = new Date(d); 
  for( var i = 0 ; i < dataRange.length ; i++){
    var tempDate = new Date(dataRange[i][11]); // Col L
    if(tempDate.getDate() == lastDate.getDate() && 
       tempDate.getMonth() == lastDate.getMonth() && 
       tempDate.getFullYear() == lastDate.getFullYear() ) { 
         return (i+1); // Return the row number which is 1 more than the index 
    }
  }
  return 0;
}