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

Ali*_*zad 5 c# datetime

我有两个约会:

DateTime fromDate = new DateTime(2013,7,27,12,0,0);
DateTime toDate = new DateTime(2013,7,30,12,0,0);
Run Code Online (Sandbox Code Playgroud)

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

while(fromDate < toDate)
{
fromDate.AddDays(1);
}
Run Code Online (Sandbox Code Playgroud)

但这是一个无限循环,不会停止.我怎样才能做到这一点 ?

tia*_*tia 9

未经测试但应该工作:

for(DateTime date = fromDate; date < toDate; date = date.AddDays(1)) {
}
Run Code Online (Sandbox Code Playgroud)

<=如果要包含toDate,也要将比较修改为.

  • 为了总是更好,然后;) (2认同)

O. *_*per 6

DateTime.AddDays确实将指定的天数添加到日期 - 但结果日期作为 DateTime值返回;原始DateTime值不会改变。

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

while (fromDate < toDate)
{
    fromDate = fromDate.AddDays(1);
}
Run Code Online (Sandbox Code Playgroud)