代码之家  ›  专栏  ›  技术社区  ›  Donnie D'Amato

在JavaScript中获取最后n个季度

  •  1
  • Donnie D'Amato  · 技术社区  · 10 年前

    显然地 this kind of question was asked before ,但这是一个C#答案,我无法翻译成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'
    

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

    1 回复  |  直到 9 年前
        1
  •  3
  •   Andrew Ngo    10 年前

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

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