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

问题描述 投票:0回答:1

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

基本上有一个单元格,其中当前日期是(变量“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();
  }
google-apps-script google-sheets string-comparison
1个回答
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

现在会产生预期的结果。

© www.soinside.com 2019 - 2024. All rights reserved.