2 つの DateTime 間の期間を分単位で決定する必要があります。
ただし、少しひねりがあります。
- 週末を除く
- 午前 7 時から午後 7 時までの分のみをカウントします。例えば:
[09/30/2010 6:39:00 PM] - [09/30/2010 7:39:00 PM] = 21 Minutes
私はそれを行うためのまともな方法を思い付くのに苦労しているだけで、誰かが何かを提案していただければ幸いです.
ありがとう。
編集:
私はdtbのソリューションに行き着きました。注意が必要な特殊なケースが 1 つだけあります。終了時刻が午後 7 時以降の場合は、午前 7 時から実際の終了時刻までの分数を数えます。
これは私がそれを修正した方法です:
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;
繰り返しますが、助けてくれてありがとう。