Мне нужно определить продолжительность между двумя DateTimes в минутах.
Однако есть небольшой поворот:
- исключить выходные дни
- количество минут
которые находятся между 7:00 и 7:00.
например:
[09/30/2010 6:39:00 PM] - [09/30/2010 7:39:00 PM] = 21 Minutes
Мне просто сложно придумать достойный способ сделать это, и я был бы признателен, если кто-нибудь может что-то предложить.
Спасибо.
Edit:
Я закончил работу с решением dtb. Существует только один особый случай, о котором нужно позаботиться: если время окончания после 7: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;
Снова спасибо за помощь.