これはちょっと面倒なクエリです。私はdatetimeプロパティと他のデータを持つFooクラスのリストを持っています。休日や週末のように行方不明と一部の行方不明があり、毎分クラス/行があります。私の目標は、開始時刻から終了時刻までのすべての行を毎日グループ化することです。linqグループの開始時刻から終了時刻までのDateTime列
私の開始時間は、午前9時30分と午後3時です。この状況で私は次のように扱います:
DateTime sd = new DateTime(2000, 1, 1, 9, 30, 0);
DateTime ed = new DateTime(2000, 1, 1, 15, 0, 0);
var z = Foos.Where(a=> a.FooDate.TimeOfDay >= sd.TimeOfDay &&
a.FooDate.TimeOfDay < ed.TimeOfDay)
.GroupBy(a=>a.FooDate.Date);
これは問題なく動作します。私の問題は時々、午後9時から午前6時までです。その場合、私は一晩に行くfoosのグループが欲しい、そして午後9時は金曜日にあり、次の月曜日まで私はグループが週末にまたがることを望むまで行がありません。私は昨日に行くつもりのクエリの提案にも満足しています。
私はそのことを明確にしていただければ幸いです。私はループでこれを行う他の方法をたくさん試して、異なる日付などの別のリストを作成しましたが、それに満足していません。
私はあなたが決定しようとしているものに関して、混乱しています。エントリ間の時間を取得しようとしていますか(Foos)?または2回の間にエントリの数を数えていますか? – Jeremy
fooオブジェクトのリストを時間範囲にグループ化しようとしています。したがって、最初の日には、その日の開始時刻から翌日にグループ化するデータがあり、データの終了時刻があります。その後、その日に開始時に再び開始し、続行します。 – RBear