Для достижения вашей цели, вы должны пройти STARTDATE, ENDDATE и день недели (prefferably не в виде строки, а как DayOfWeek для лучшего кода-читаемости):
public List<DateTime> GetListOfDays(DateTime startDate, DateTime endDate, DayOfWeek dayOfWeek)
{
var list = new List<DateTime>();
var daysDifference = endDate.Subtract(startDate).TotalDays;
for (int i = 0; i < daysDifference; i++)
{
var date = startDate.AddDays(i);
if (date.DayOfWeek == dayOfWeek)
{
list.Add(date);
}
}
return list;
}
Возвращаемый список будет содержать все понедельники (в случае, если вы прошли Monday
в качестве dayOfWeek
) с указанием точных дат. Если вы выполните .Count()
в возвращенном списке, вы увидите, сколько из них было возвращено.
@NayeemMansoori Я отправил код, который работает без петли. В любом случае это хорошо. –