получить дни между двумя выбранными днями, используя DateTimePicker - PullRequest
1 голос
/ 24 ноября 2011

Я использую два 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 ]

1 голос
/ 24 ноября 2011

Этот код тоже должен работать:

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;
1 голос
/ 24 ноября 2011

Попробуйте:

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:)

Aвозможный вспомогательный метод:

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

Редактировать Изменено так, что границы включены, ранее я указывал только промежуточные даты.

...