Есть номер недели, например 43. Нужно определить что понедельник был 28.10.2013.
Здравствуйте, Аноним, Вы писали:
А>Есть номер недели, например 43. Нужно определить что понедельник был 28.10.2013.
Зачетная сессия началась?
Здравствуйте, Аноним, Вы писали:
А>>>Есть номер недели, например 43. Нужно определить что понедельник был 28.10.2013.
H>>Зачетная сессия началась?
А>Да. МОжет поможете?
Вспомнить арифметику и включить логигу.
Здравствуйте, Аноним, Вы писали:
А>Есть номер недели, например 43. Нужно определить что понедельник был 28.10.2013.
Решение на C# (без оформления, только функционал):
int weekNumber = 43; // номер данной недели (условие)
int currentYear = DateTime.Now.Year; // вычисляем текущий год
var startDate = new DateTime(currentYear,1,4); // вычисляем опорную дату — 4 января текущего года (почему, читать тут
http://planetcalc.ru/1252/)
int offsetToFirstMonday = startDate.DayOfWeek == DayOfWeek.Sunday ? 6 : (int)startDate.DayOfWeek — 1; // смещение к понедельнику первой недели текущего года, в днях
int offsetToDemandedMonday = -offsetToFirstMonday + 7 * (weekNumber-1); // смещение к искомому понедельнику, в днях
var mondayOfTheGivenWeek = startDate + new TimeSpan( offsetToDemandedMonday, 0, 0, 0); // вычисляем дату искомого понедельника
Console.WriteLine ("{0:d}, {1}", mondayOfTheGivenWeek, mondayOfTheGivenWeek.DayOfWeek); // вывод на экран
Кстати, результат будет: 10/21/2013, Monday,
(то есть, понедельник 43 недели 2013 года — 21 октября, а не 28, как в условии)
убедиться можно здесь —
http://numweek.ru/