Как по номеру недели определить дату понедельника
От: Аноним  
Дата: 29.10.13 12:05
Оценка:
Есть номер недели, например 43. Нужно определить что понедельник был 28.10.2013.
Re: Как по номеру недели определить дату понедельника
От: hardcase Пират http://nemerle.org
Дата: 29.10.13 12:15
Оценка: -1 :)
Здравствуйте, Аноним, Вы писали:

А>Есть номер недели, например 43. Нужно определить что понедельник был 28.10.2013.


Зачетная сессия началась?
/* иЗвиНите зА неРовнЫй поЧерК */
Re[2]: Как по номеру недели определить дату понедельника
От: Аноним  
Дата: 29.10.13 12:19
Оценка:
А>>Есть номер недели, например 43. Нужно определить что понедельник был 28.10.2013.

H>Зачетная сессия началась?


Да. МОжет поможете?
Re[3]: Как по номеру недели определить дату понедельника
От: pr0ff  
Дата: 29.10.13 13:19
Оценка:
Здравствуйте, Аноним, Вы писали:

А>>>Есть номер недели, например 43. Нужно определить что понедельник был 28.10.2013.


H>>Зачетная сессия началась?


А>Да. МОжет поможете?

Вспомнить арифметику и включить логигу.
Re: Как по номеру недели определить дату понедельника
От: Muxa  
Дата: 29.10.13 13:53
Оценка: -1
А>Есть номер недели, например 43. Нужно определить что понедельник был 28.10.2013.
найди понедельник первой недели и прибавь 43*7 дней.
Re: Как по номеру недели определить дату понедельника
От: Аноним  
Дата: 29.10.13 14:24
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Есть номер недели, например 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/
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.