0

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

基本上有一个单元格,其中当前日期是(变量“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();
  }
4

1 回答 1

0

最重要的答案 用 Ja​​vaScript 比较两个日期

只需将输入转换为 Date 对象并转换为通用格式,因为没有它你不能使用 == 或 === 比较。您可以使用 .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

现在将产生所需的结果。

于 2013-09-26T11:43:10.393 回答