c# - 在 C# 中获取最后 'N' 个季度

标签 c#

假设当前季度是 3,年份是 2011,我怎样才能得到最后 5 个季度

期望的输出:

Q3-2011
Q2-2011
Q1-2011
Q4-2010
Q3-2010

附加了 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   
            }

谢谢

最佳答案

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

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

关于c# - 在 C# 中获取最后 'N' 个季度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7484965/

相关文章:

c# - ASP.NET MVC RenderAction 中的以下方法或属性之间的调用不明确

c# - DataContractSerializer前向兼容性问题

c# - WPF DataContext 不更新子级

c# - 具有整数值的 IFormatProvider

c# - Linq查询问题(ado.net请求太多)

c# - 如何在 cpp 可执行文件中嵌入 licence.licx 文件?

C# 字典的转换

c# - 自定义内存分配器或内存池

c# - 是什么原因导致此列表在以一种方式调用时通过引用传递,但通过另一种方式传递值?

c# - 使用 C# 的 Interface<T> 接口(interface)