在C#中获得最后'N'个宿舍

lig*_*ver 7 c#

假设目前的季度是3,年份是2011年.我怎样才能获得最后5个季度

期望的输出:

Q3-2011
Q2-2011
Q1-2011
Q4-2010
Q3-2010
Run Code Online (Sandbox Code Playgroud)

Q和' - '被追加.

我正在努力

int generateQuater = 5;

            int currentQuater = 3;//GetQuarter(DateTime.Now.Month);
            int currentYear = DateTime.Now.Year;

            List<string> lstQuaterYear = new List<string>();

            lstQuaterYear.Add(string.Concat('Q',currentQuater, '-', currentYear));

            for (int i = generateQuater; i > 0; i++)
            {
              //code to be placed   
            }
Run Code Online (Sandbox Code Playgroud)

谢谢

Jan*_*Jan 4

您必须减少循环变量。剩下的就不是太难的数学了。也没有必要以任何特殊方式处理第一次迭代:

for (int i = generateQuater; i > 0; i--)
{
    lstQuaterYear.Add(string.Format("Q{0}-{1}", currentQuater, currentYear));
    if (--currentQuater == 0)
    {
        currentQuater = 4;
        currentYear--;
    }
}
Run Code Online (Sandbox Code Playgroud)