我可以从DateTime
控件获得今天 DateTimePicker
。现在我希望所有日期都在两个特定日期之间,例如2014/6/25
到2014/7/3.
我知道传统的方法将日期的字符串分解为char然后找到月份 数字并将日期增加到31或30日。
有没有更简单的方法呢?
答案 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