C # - Продолжительность между двумя DateTimes в минутах

Мне нужно определить продолжительность между двумя DateTimes в минутах.

Однако есть небольшой поворот:

  • исключить выходные
  • только считать минуты которые с 7:00 до 19:00. например: [30.09.2010 6:39:00 PM] - [30.09.2010 19:39:00] = 21 Минуты

Мне просто трудно придумать достойный способ сделать это, и я буду признателен, если кто-нибудь сможет что-то предложить.

Спасибо.


Изменить:

В итоге я выбрал решение dtb. . Есть только один особый случай, о котором нужно позаботиться: если время окончания после 19:00, отсчитайте минуты с 7:00 до фактического времени окончания.

Я изменил его следующим образом:

var minutes = from day in start.DaysInRangeUntil(end)
                where !day.IsWeekendDay()
                let st = Helpers.Max(day.AddHours(7), start)
                let en = (day.DayOfYear == end.DayOfYear ? 
                            end :
                            Helpers.Min(day.AddHours(19), end)
                            )
                select (en - st).TotalMinutes;

Опять же , спасибо за помощь.

20
задан Nasir 1 October 2010 в 15:11
поделиться