0

Я использую следующую часть скрипта, чтобы попытаться получить обменный курс валюты для нескольких валют по отношению к евро на дату выплаты дивидендов. Это необходимо для того, чтобы не задумываться о том, чтобы рассчитать значение в EUR, которое затем я использую для расчета производительности моего портфеля в таблицах Google.Сравнение двух строк в скрипте Google Apps

В основном существует ячейка, в которой текущая дата (переменная "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(); 
    } 

ответ

0

На вершине ответов Compare two dates with JavaScript

просто преобразовать ввод в 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 

даст желаемый результат.

Смежные вопросы