[解決済み] 重複期間を検出するアルゴリズム【重複あり
2022-03-18 04:51:19
質問
2つの時間帯が重なっているかどうかを検出しなければならない。
各期間には、開始日と終了日があります。
最初の期間(A)が他の期間(B/C)と重なっているかどうかを検出する必要があります。
私の場合、Bの開始とAの終了が同じなら、重なっていない(逆も同様)。
以下のようなケースを発見しました。
だから、実はこんな風にやっているんです。
tStartA < tStartB && tStartB < tEndA //For case 1
OR
tStartA < tEndB && tEndB <= tEndA //For case 2
OR
tStartB < tStartA && tEndB > tEndA //For case 3
(ケース4は、ケース1またはケース2のいずれかに該当します。)
それは 動作 しかし、あまり効率的ではないようです。
そこで、まず、この(期間)をモデル化できるC#の既存のクラスはあるのでしょうか?
第二に、C#のコード(例:Ctrl+C)は既に存在するのでしょうか?
DateTime
クラス)で処理することができますか?
第三に、もし「いいえ」の場合、この比較を最も高速に行うには、どのようなアプローチが考えられますか?
解決方法は?
2つの期間が重なっているかどうかの簡単なチェック。
bool overlap = a.start < b.end && b.start < a.end;
またはコード内で
bool overlap = tStartA < tEndB && tStartB < tEndA;
(使用
<=
の代わりに
<
もし、ちょうど触れ合う2つのピリオドが重なり合うと言いたいという気持ちが変わったら)
関連
-
[解決済み】"出力タイプがクラスライブラリのプロジェクトは直接起動できない"
-
[解決済み] 保護レベルによりアクセス不能になりました。
-
[解決済み】WPFでXamlファイルにコメントを追加する方法は?
-
[解決済み】Visual studio 2019がデバッグ時にフリーズする件
-
[解決済み】値をNULLにすることはできません。パラメータ名:source
-
[解決済み] ゲーム「2048」の最適なアルゴリズムとは?
-
[解決済み] LINQ集計アルゴリズム説明
-
[解決済み] Pythonでタイムゾーンを意識したdatetimeオブジェクトを作るには?
-
[解決済み】画像処理。コカ・コーラ缶」認識のためのアルゴリズム改良
-
[解決済み】アルゴリズムの時間複雑性を求めるには?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】コンパイルエラー「未割り当てのローカル変数を使用しています」が発生したのはなぜですか?
-
[解決済み】WebForms UnobtrusiveValidationModeは、jqueryのScriptResourceMappingを必要とする
-
[解決済み】"The ConnectionString property has not been initialized "を修正する方法
-
[解決済み】プロジェクトビルド時のエラー。エディタでスクリプトにコンパイルエラーがあるため、Playerのビルドにエラーが発生する
-
[解決済み】非静的メソッドはターゲットを必要とする
-
[解決済み】MetadataException: 指定されたメタデータ・リソースをロードできない
-
[解決済み】OnCollisionEnter2Dが実行されない?
-
[解決済み】IntPtrとは一体何なのか?
-
VSでscanfエラーを恒久的に解決するには、ソースファイルを作成し、自動的に#define _CRT_SECURE_NO_WARNINGS 1を追加してください。
-
[解決済み] 2つの日付範囲が重なっているかどうかを判定する