Как найти пятницу, следующую за данной датой в 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 в пятницу.
