Я пытаюсь написать метод, который будет возвращать список DateTimes, представляющих неделю с понедельника по воскресенье. Предполагается взять DateTime, данное ему, и использовать его для вычисления окружающих дат
Он рассчитывает начальную дату нормально, но проблема начинается, когда он попадает в последний цикл. При каждом запуске через переменную DateTime значение tmpDate должно увеличиваться на 1 день, а затем добавляться в список. Однако в настоящее время я получаю список, содержащий 7 дат начала.
Может кто-нибудь увидеть, где я иду не так (у меня такое ощущение, что я могу выглядеть как простак по этому поводу :))?
Кроме того, извинения, если это часто задаваемый вопрос. Может видеть много вопросов о дате начала / дате окончания и типе номера недели, но ни один из них конкретно не касается этого типа проблемы.
private List<DateTime> getWeek(DateTime enteredDate)
{
/* Create List to hold the dates */
List<DateTime> week = new List<DateTime>();
int enteredDatePosition = (int)enteredDate.DayOfWeek;
/* Determine first day of the week */
int difference = 0;
for (int i = 0; i < 7; i++)
{
difference++;
if (i == enteredDatePosition)
{
break;
}
}
// 2 subtracted from difference so first and enteredDatePostion elements will not be counted.
difference -= 2;
DateTime startDate = enteredDate.Subtract(new TimeSpan(difference, 0, 0, 0));
week.Add(startDate);
/* Loop through length of a week, incrementing date & adding to list with each iteration */
DateTime tmpDate = startDate;
for (int i = 1; i < 7; i++)
{
tmpDate.Add(new TimeSpan(1, 0, 0, 0));
week.Add(tmpDate);
}
return week;
}