使用DateTimePicker获取两个选定日期之间的天数

时间:2011-11-24 09:26:15

标签: c# visual-studio-2010 datetimepicker

我正在使用两个dateTimePicker,并且假设我在第一个选择了11-11-2011,而在最后一个选择了17-11-2011。现在我想知道这两个日期之间的日期。我只想得到这样的结果:

11-11-2011 
12-11-2011 
13-11-2011 
14-11-2011 
15-11-2011 
16-11-2011 
17-11-2011 

我该怎么做?

我试图从詹姆斯希尔的问题中解决这个问题,但无法弄明白。 谢谢,

2 个答案:

答案 0 :(得分:1)

尝试一下:

DateTime start = DateTime.Today;
DateTime end = DateTime.Today.AddDays(7);

for (DateTime current = start; current <= end; current = current.AddDays(1))
{
    Console.WriteLine(current);
}

我喜欢使用for循环来处理这类东西,因为我经常在现代.NET项目中错过它们。)

可能的辅助方法:

static IEnumerable<DateTime> GetRange(DateTime start, DateTime end)
{
    for (DateTime current = start; current <= end; current = current.AddDays(1))
    {
        yield return current;
    }
}

重要如果您还有时间部分,则必须将条件更改为current.Date <= end.Date

修改已更改以便包含边界,之前我只提供了介于两者之间的日期。

答案 1 :(得分:1)

此代码也应该有效:

var timeSpan = (last.Value - first.Value);

var result = new List<DateTime>()
for (int i = 0; i < timeSpan.Days; i++)
{
    a.Add (first.AddDays (i));
}
return result;