2010-03-07 5 views

ответ

2

Образец для кода, который делает это:

int workWeek = 30; 
int year = 2009; 

var firstDayOfYear = new DateTime(year, 1, 1); 
var firstDayOfWorkWeek = firstDayOfYear.AddDays((workWeek - 1) * 7); 

Этот код предполагает, что работа начала недели на день 1/1/YYYY (означающего неделю можно начинать с Среда, например).

Если вы хотите, чтобы нормализовать его в воскресенье:

firstDayOfWorkWeek = 
       firstDayOfWorkWeek.AddDays(-(int) firstDayOfWorkWeek.DayOfWeek); 
+0

Это не работает, я пробовал оба. Я пробовал неделю 30, год 09. В моем календаре это понедельник. 20.07.2009. Но в вашем алгоритме его 29.07.2009 – Kovu

+0

Вы правы, это должно быть «(workWeek - 1) * 7» вместо «workWeek» 7 - 1 ' – Elisha

+0

Мне жаль, но это не работает, ровно 1 неделя допоздна – Kovu