Я думаю, что это должно делать то, что вы хотите:
public static DateTime[] WeekDays(int Year, int WeekNumber)
{
DateTime start = new DateTime(Year, 1, 1).AddDays(7 * WeekNumber);
start = start.AddDays(-((int)start.DayOfWeek));
return Enumerable.Range(0, 7).Select(num => start.AddDays(num)).ToArray();
}
Хотя я воспринимаю воскресенье как первый день недели, если вы хотите, чтобы понедельник был первым диапазоном изменения дня с (0,7) на (1,7).
Если вы хотите соответствовать стандарту ISO, я думаю, что это должно работать:
public static DateTime[] WeekDays(int Year, int WeekNumber)
{
DateTime start = new DateTime(Year, 1, 4);
start = start.AddDays(-((int)start.DayOfWeek));
start = start.AddDays(7 * (WeekNumber - 1));
return Enumerable.Range(0, 7).Select(num => start.AddDays(num)).ToArray();
}