我遇到了一个问题,我程序中写的逻辑如下
while (lastDate.Month < DateTime.Today.Month - 1)//
{
lastDate= lastDate.AddMonths(1);
list.Add(lastDate);
}
当 lastDate 月份是 Dec 并且我在新年的 1 月或 2 月执行此代码时,此代码失败,因为 12 永远不会大于 1 0r 2。
我需要编写一个逻辑,使我的循环可以遍历 Nov、Dec、Jan、Feb 等等。
我写了下面的代码,但我没有得到退出的线索,当 lastDate 和今天的日期相差 2 个月时,循环应该退出。
if (lastDate.Month > DateTime.Today.Month && lastDate.Year < DateTime.Today.Year)
{
while (lastDate.Year <= DateTime.Today.Year)
{
lastDate= lastDate.AddMonths(1);
list.Add(lastDate);
}
请帮帮我
您总是会在列表中添加 12 个月,因此您可以使用 for
循环:
for(var i = 0; i < 12; i++)
{
lastDate = lastDate.AddMonths(1);
list.Add(lastDate);
}
正如您知道必须将一个月加多少次一样,不需要根据月份和年份来设置条件,而只需要一个计数器来恰好执行此代码 12 次。
我是一名优秀的程序员,十分优秀!