Как высчитать недели между 2мя датами на C#?

Всем привет.
Есть 2 DateTime. Назовем их начало и конец.
Допустим начало у нас это 15.01.2016, а конец 05.02.2016.
Нужна функция, которая бы возвращала Dictionary промежутки начала и концов недель.
e4455b82b0b14c2a8d6fb2df0f853038.PNG
При таких параметрах возвратило бы 4 объекта.
Но, есть условие. Если между началом и концом есть разрыв месяца, то нужно в одном промежутке закончить его, в другом начать с первого числа месяца, как показано на картинке.
793c2f94ff9d4c9ca008a70388c5b30b.PNG
Должно вернуть 5 объектов, где у третьего начало/конец это 30/31, а у четвертого 1/5.
  • Вопрос задан
  • 492 просмотра
Решения вопроса 1
@Maddox Автор вопроса
Кому интересно вот вам проект
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
Shwed_Berlin
@Shwed_Berlin
.net Software Developer
1. Вычисляем номер недели для первой и второй даты.
2. Для всех недель между первой и второй выдаем первый день недели и последний (или все дни недели, смотря что нужно).
3. Для каждого обьекта проверяем была ли смена месяца, если да - делим объект на два.

Это если в общем.
Ответ написан
Комментировать
petermzg
@petermzg
Самый лучший программист
А как это у вас одна неделя двумя стала с 30.05 по 05.06?

Считается просто. Получается количество дней между датами и делится на 7.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы