Как найти пятницу, следующую за данной датой в C#
В этом примере показано, как вы можете найти пятницу после определенной даты. Вы можете использовать аналогичный метод, чтобы найти другие дни недели, следующие за определенной датой. (Обратите внимание, что я обновил этот пример из своей первоначальной версии, чтобы использовать технику, рекомендованную Федором Буяковым в комментариях. Я оставил комментарий, чтобы дать ему полную оценку за отличное предложение.)
Когда вы вводите дату и нажимаете кнопку «Найти пятницу», выполняется следующий код.
// Найдите следующую пятницу. private void btnFindFriday_Click(object sender, EventArgs e) { // Получить указанную дату. DateTime the_date = DateTime.Parse(txtDate.Text); txtDateLong.Text = the_date.ToLongDateString(); // Найдите следующую пятницу. // Получаем количество дней между // день недели и пятница. int num_days = System.DayOfWeek.Friday - the_date.DayOfWeek; if (num_days < 0) num_days += 7; // Добавьте необходимое количество дней. DateTime friday = the_date.AddDays(num_days); // Отображение результата. txtFriday.Text = friday.ToShortDateString(); txtFridayLong.Text = friday.ToLongDateString(); }
Код начинается с разбора введенной даты и отображения этой даты в длинном формате. Затем он вычитает день недели для этой даты со дня недели в пятницу. Если результат меньше 0, то значение представляет количество дней до введенной даты, чтобы перейти к предыдущей пятнице. В этом случае код добавляет 7, чтобы получить количество дней до next в пятницу.