获取 JavaScript 中的最后 n 个季度

Get last n quarters in JavaScript

显然,this kind of question was asked before,但这是一个我无法翻译成 JavaScript 的 C# 答案。

这是我的原始代码,但现在第一季度失败了:

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'

编辑:可以更改循环的设置,只要输出如图所示。

我对你的代码做了一些修改,现在应该可以工作了。

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;
    };
};