データベースに保存された時間範囲に基づいて店舗のオープンまたはクローズ状態を表示しようとしています。現在の時刻が複数の時間範囲にあるかどうかを調べる
各店舗が持つことができる2営業時間
例:
9:00 AM 11:00 AMおよび単一時間10:00 PM
ワークスが1時00分PMに範囲:
IEnumerable<Timings> timings = allStore.ToList(); // from database
foreach (var storetime in timings)
{
TimeSpan openSpan = TimeSpan.FromTicks((long)storetime.OpenTime);
TimeSpan openLocalTime = TimeConversions.UTCTimeToLocalTime(openSpan);
DateTime openDatetime = DateTime.Today.Add(openLocalTime);
string openDisplayTime = openDatetime.ToString("hh:mm tt");
.....
TimeSpan closeLocalTime = TimeConversions.UTCTimeToLocalTime(closeSpan);
if ((now > openLocalTime) && (now < closeLocalTime))
{
//Store is Open
}
else
{
//Store is Closed
}
}
複数の範囲:
IEnumerable<Timings> timings = allStore.ToList(); // from database
if((timings.Any(now > d=>d.OpenTime))) // can i use Any ?
{
}
ここにはtable構造があります。
助けがあれば助かります。
ソリューションはC#でなければなりませんか? IMOでは、すべての開始時間を取得するのではなく、SQLで直接記述する方がよいでしょう。 – martin
あなたのコードを理解できません。なぜ、 'openLocalTime'は' Timespan'であり、 'DateTime'ではありません(近い時間に同じです)。 'TimeConversions.UTCTimeToLocalTime'とは何ですか?どのオブジェクトタイプが' Timings'ですか? – Philippe
@Philippe、私はちょうど[ここで](http://stackoverflow.com/a/8504020/2218697)に記載されているようにダニを使用します。 'BigInt'と 'TimeConversions.UTCTimeToLocalTime'が変換に使用されるようにデータベースにティックを格納しました。 UTCはローカルタイムパンにティック、タイミングは各ストアのタイミングのリスト、私はポストを更新しました。助けてくれることを望む。 – stom