我正在使用两个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
我该怎么做?
我试图从詹姆斯希尔的问题中解决这个问题,但无法弄明白。 谢谢,
答案 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;