Получите разницу в днях между двумя рабочими днями - PullRequest
6 голосов
/ 10 февраля 2012

Звучит очень просто, но я не понимаю, в чем дело.

Так какой самый простой способ получить число дней между двумя DayOfWeeks, когда первый является отправной точкой? Если следующий будний день раньше, его следует считать следующим.

Перечисление DayOfWeek-Enumeration начинается с Sunday(0) и заканчивается Saturday(6).

 1. Monday    = 1
 2. Thursday  = 4

Result: 4 - 1 = 3

 1. Thursday  = 4
 2. Monday    = 1
// obviously a Math.Abs is helpful
Result: Math.Abs(1 - 4) = 3

Но этот результат неверен, потому что между четвергом и понедельником (на следующей неделе) есть 4 дня.

1 Ответ

19 голосов
/ 10 февраля 2012

Добавьте 7, затем мод 7:

(7 + (1 - 4)) % 7

Например:

var weekDay1  = DayOfWeek.Thursday;
var weeekDay2 = DayOfWeek.Monday;
var daysDiff  = (7 + (weeekDay2 - weekDay1)) % 7;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...