2016-01-06 3 views
1

По-видимому, this kind of question was asked before, но это ответ на C#, который я не могу перевести на JavaScript.Получить последние n кварталов в JavaScript

Вот мой исходный код, но теперь он терпит неудачу в первом квартале:

var amount = 6; 
var now = new Date(); 
var thisYear = now.getFullYear(); 
var quarterStart = Math.ceil((now.getMonth() + 1)/3); 
//quarterStart will return a number between 1 and 4 

for (var i = 0; i < amount; i++) { 

    //here's the line that definitely needs to be changed 
    var thisQuarter = quarterStart - (i % 4); 

    //if thisQuarter is the last one, go back one year 
    if (thisQuarter == 4 && i > 0) { 
     thisYear--; 
    }; 

    console.log('Q' + thisQuarter + ' ' + thisYear); 
}; 

//console should return the following 
//'Q1 2016' 
//'Q4 2015' 
//'Q3 2015' 
//'Q2 2015' 
//'Q1 2015' 
//'Q4 2014' 

EDIT: Установка для контура может быть изменен, пока выход, как показано на рисунке.

ответ

3

Я внесла некоторые изменения в ваш код, теперь должен работать.

var amount = 6; 
var now = new Date(); 
var thisYear = now.getFullYear(); 
var quarterStart = Math.ceil((now.getMonth() + 1)/3); 

for (var i = 0; i < amount; i++) { 
    console.log('Q' + quarterStart + ' ' + thisYear); 

    quarterStart--; 
    if (quarterStart <= 0) { 
     thisYear--; 
     quarterStart = 4; 
    }; 
}; 
Смежные вопросы