在DateTimePicker控件中查找下一个日期

时间:2014-06-18 06:24:47

标签: c#

我可以从DateTime控件获得今天 DateTimePicker。现在我希望所有日期都在两个特定日期之间,例如2014/6/252014/7/3.

我知道传统的方法将日期的字符串分解为char然后找到月份 数字并将日期增加到31或30日。

有没有更简单的方法呢?

3 个答案:

答案 0 :(得分:2)

var dates = new List<DateTime>();

var startDate = new DateTime(2014, 6, 25);
var endDate = new DateTime(2014,7,3);
while(startDate <= endDate)
{
   dates.Add(startDate);
   startDate = startDate.AddDays(1);
}

LINQ方式:

var startDate = new DateTime(2014, 6, 25);
var endDate = new DateTime(2014,7,3);
var difference = (endDate - startDate).Days;
var dates = Enumerable.Range(0, difference+1)
      .Select(d => startDate.AddDays(d))
      .ToList();

答案 1 :(得分:0)

也许是for循环?

List<DateTime> myDates = new List<DateTime>();

DateTime startDate = new DateTime (2014, 6, 25);
DateTime endDate = new DateTime (2014,7,3);

for (DateTime date = startDate; date <= endDate; date = date.AddDays(1))
{
  myDates.Add(date);
}

答案 2 :(得分:0)

您可以使用这样的循环:

for(int i = 0; i <= endDate.Subtract(startDate).Days; i++)
{
    DateTime temp = startDate.AddDays(i);
}

使用AddDays,您不必注意溢出:

2014-2-28 -> AddDays(1) -> 2014-3-1
2012-2-18 -> AddDays(1) -> 2012-2-29