Это должно работать:
public static DateTime GetDateTime(int year, int week, int day, CultureInfo cultureInfo)
{
DateTime firstDayOfYear = new DateTime(year, 1, 1);
int firstWeek = cultureInfo.Calendar.GetWeekOfYear(firstDayOfYear, cultureInfo.DateTimeFormat.CalendarWeekRule, cultureInfo.DateTimeFormat.FirstDayOfWeek);
int dayOffSet = day - (int)cultureInfo.DateTimeFormat.FirstDayOfWeek + 1;
return firstDayOfYear.AddDays((week - (firstWeek + 1)) * 7 + dayOffSet + 1);
}
Я должен отметить, что моя реализация не основана на нуле. (таким образом, Год = 2011, Неделя = 27, день = 6) 2 июля 2011 года.