性格いい人が優勝

VB.netについて質問です。
下記のようにデータがあったとします。
_________
日付、コード
1/1、******
1/1、******
1/2、******
1/2、******
1/2、******
1/4、******
1/4、******
1/7、******
1/11、******



_______

登録されていない日付があったときにメッセージを出したいです。
下記のコーディングでは
1/4~1/7の間で(2日連続登録されていない)
1/5、1/6は登録されていません。まで出すのが精一杯です。

______________________________
'登録されていない日があったときメッセージを出す
For i = 0 To DataGridView.RowCount - 2
Dim kyou As Date = DataGridView.Rows(i).Cells(0).Value
Dim tsugi As Date = DataGridView.Rows(i + 1).Cells(0).Value
Dim ashita As Date = kyou.AddDays(1)
Dim asatte As Date = ashita.AddDays(1)
Dim shiasatte As Date = asatte.AddDays(1)

'2日連続登録データが抜けていたときまでのチェック
If kyou = tsugi Or tsugi = ashita Then
Else
If tsugi = asatte Then
MsgBox(ashita & "が未登録です")
Else
If tsugi = shiasatte Then
MsgBox(ashita & "と" & asatte & "が未登録です")
End If

End If

End If

Next

______________________________

どんなに日にち離れていても対応できるようなコーディングを教えて欲しいです。

よろしくお願いいたします。

A 回答 (1件)

DataGridViewについては余り経験がないので飛ばしますけど。



重複しない日付をListクラス(データ型はDate)等に一旦格納して、次のIndexの日付が+1日で無い場合に分岐処理するような感じで出来ないのかな?
と、パッと見では感じましたけれど。(検証した訳じゃないですが)
結局翌日以降を配列ではない変数にそれぞれ格納するようですと、変数名が大量に必要になるんじゃないでしょうか?
    • good
    • 0
この回答へのお礼

ありがとうございます。

お礼日時:2018/10/11 08:45

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!