///
/// Finds the next date whose day of the week equals the specified day of the week.
///
///
/// The date to begin the search.
///
///
/// The desired day of the week whose date will be returneed.
///
///
/// The returned date is on the given day of this week.
/// If the given day is before given date, the date for the
/// following week's desired day is returned.
///
public static DateTime GetNextDateForDay( DateTime startDate, DayOfWeek desiredDay )
{
// (There has to be a better way to do this, perhaps mathematically.)
// Traverse this week
DateTime nextDate = startDate;
while( nextDate.DayOfWeek != desiredDay )
nextDate = nextDate.AddDays( 1D );
return nextDate;
}
Source:
http://angstrey.com/index.php/2009/04/25/finding-the-next-date-for-day-of-week/