在C#中的两个日期之间进行迭代

时间:2013-07-27 12:08:21

标签: c# datetime

我有两个日期:

DateTime fromDate = new DateTime(2013,7,27,12,0,0);
DateTime toDate = new DateTime(2013,7,30,12,0,0);

我想通过从一天开始增加fromDate来从fromDate迭代到toDate,并且当fromDate等于或大于toDate时循环应该中断。我试过这个:

while(fromDate < toDate)
{
fromDate.AddDays(1);
}

但这是一个无限循环,不会停止。我怎么能这样做?

2 个答案:

答案 0 :(得分:7)

未经测试但应该有效:

for(DateTime date = fromDate; date < toDate; date = date.AddDays(1)) {
}

如果您还要包含<=,请将比较修改为toDate

答案 1 :(得分:4)

DateTime.AddDays确实会将指定的天数添加到日期中 - 但结果日期 DateTime的形式返回;原始DateTime值未更改。

因此,请确保将操作的结果分配回您在循环条件中检查的变量:

while (fromDate < toDate)
{
    fromDate = fromDate.AddDays(1);
}