比较Google Apps脚本中的两个字符串

时间:2013-09-18 12:05:39

标签: google-apps-script google-sheets string-comparison

我正在使用脚本的以下部分尝试在实际支付股息的日期提取几种货币对欧元的货币汇率。这是为了确保我不需要记住计算欧元的价值,然后我用它来计算我的投资组合在Google电子表格中的表现

基本上有一个单元格,其中当前日期是(变量“tamapaiva”)和支付特定股息的日期(变量“osingonmaksupaiva”)。在脚本中,我正在比较这两个日期,但由于某种原因,它们永远不会匹配,即使调试视图显示它们完全相同。

原因可能是一个非常简单的原因,但如果你能看看,我会很感激。

  // Calculate the value of dividends in EUR
  var i = 3;
  var tamapaiva = osinkoSheet.getRange(1, 9).getValue();
  var osingonmaksupaiva = "";
  var osingonmaksupaiva = osinkoSheet.getRange(i,1).getValue();

  while(osingonmaksupaiva != ""){
    var valuutta = osinkoSheet.getRange(i,5).getValue();
    if(valuutta == "GBP" && tamapaiva == osingonmaksupaiva){
      var kurssi = portfolioSheet.getRange(2, 16).getValue();
      osinkoSheet.getRange(i, 6).setValue(kurssi);
    }
    else if(valuutta == "USD" && tamapaiva == osingonmaksupaiva){
      var kurssi = portfolioSheet.getRange(2, 15).getValue();
      osinkoSheet.getRange(i, 6).setValue(kurssi);
    }
    else if(valuutta == "DKK" && tamapaiva == osingonmaksupaiva){
      var kurssi = portfolioSheet.getRange(2, 17).getValue();
      osinkoSheet.getRange(i, 6).setValue(kurssi);
    }
      i++;
      osingonmaksupaiva = osinkoSheet.getRange(i,1).getValue();
  }

1 个答案:

答案 0 :(得分:0)

在答案之上 Compare two dates with JavaScript

只需将输入转换为Date对象并转换为通用格式,因为w / o它不能使用==或===比较。您可以使用.getDate()将其转换为毫秒,并进行如下比较:

示例:

var tamapaiva = osinkoSheet.getRange(1, 9).getValue();
var osingonmaksupaiva = osinkoSheet.getRange(i,1).getValue();

应改为

var tamapaiva = new Date(osinkoSheet.getRange(1, 9).getValue()).getTime();
var osingonmaksupaiva = new Date(osinkoSheet.getRange(i,1).getValue()).getTime();

上面会将这两个值转换为数字,现在可以轻松比较。因此

tamapaiva == osingonmaksupaiva

现在会产生预期的结果。