Visual Basic 中学校 掲示板 投稿内容
タグのない投稿を抽出 統計 RSS

Visual Basic 中学校 > 投稿一覧 >

指定した範囲がある範囲に含まれるか 解決済み

タグの編集...

投稿者 はな   (社会人)   投稿日時 2022/4/18 13:45:47
VS2022で開発しています。

指定した範囲がある範囲に含まれているデータを抽出したいんですがうまくいきません。

データ: 開始:4月12日 終了:4月29日

入力①: 開始:1月 1日 終了:4月18日  
入力②: 開始:4月18日 終了:4月18日  

どちらも対象になるように条件文を記述したいです。
ご教授お願いいたします。



投稿者 魔界の仮面弁士   (社会人)   投稿日時 2022/4/18 17:12:55
Dim データ = (開始:=#2022/04/12#, 終了:=#2022/04/29#)

Dim 入力 = {
    (開始:=#2022/01/12#, 終了:=#2022/04/10#),   '範囲外 
    (開始:=#2022/01/12#, 終了:=#2022/04/29#),   '含まれる 
    (開始:=#2022/04/12#, 終了:=#2022/04/29#),   '含まれる 
    (開始:=#2022/04/30#, 終了:=#2022/05/01#)    '範囲外 
}

Dim 発見したデータ = 入力.Where(Function(x) x.開始 <= データ.終了 AndAlso x.終了 >= データ.開始).ToArray()


投稿者 (削除されました)   ()   投稿日時 2022/4/18 19:28:51
(削除されました)

投稿者 るきお   (社会人)   投稿日時 2022/4/18 19:29:06
データと入力に重複があるか判定したいということで良いのですよね?

1個ずつ判定していくならこんな感じですね。
'▼データ 
Dim dataStart As Date = #4/12/2022#
Dim dataEnd As Date = #4/29/2022#

'▼入力①の判定 
Dim input1Start As Date = #1/1/2022#
Dim input1End As Date = #4/18/2022#

If input1Start <= dataEnd AndAlso input1End >= dataStart Then
    Debug.WriteLine("入力①はデータの重複している部分があります。")
End If


投稿者 はな   (社会人)   投稿日時 2022/4/18 21:16:00
できました。ありがとうございます。