• 締切済み

VB.net 登録されている日付の連続性のチェック

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 ______________________________ どんなに日にち離れていても対応できるようなコーディングを教えて欲しいです。 よろしくお願いいたします。

みんなの回答

  • HohoPapa
  • ベストアンサー率65% (455/693)
回答No.3

>できなかったです~>< ありゃ。私がポカしてそうです。  Dim i As Long  Dim AdCnt As Long    For i = 0 To DataGridView.RowCount - 2   AdCnt = 0   Do    AdCnt = AdCnt + 1    If DataGridView.Rows(i).Cells(0).Value + AdCnt < _      DataGridView.Rows(i + 1).Cells(0).Value Then     MsgBox Format(DataGridView.Rows(i).Cells(0).Value + AdCnt, "YYYY/MM/DD") & _      "が未登録です"    Else     Exit Do    End If   Loop  Next これでもNGなら、どのようにアカンか、説明してみてください。

回答No.2

これって、1カ月の中に、必ず日は存在するのでしょうか?つまり無い月は存在しないのでしょうか? あと年の情報はどのような範囲になるのでしょうか?掲載されている日付は、月/日のみであり、年が不明です。いつの年月なのか解らないと判定ができないと思います。たとえば、同じ月でも閏年も考慮しなければならないですね?また、指定されている日付は1カ月分なのでしょうか?それとも、1年分で抜けている日を得たいのでしょうか?

  • HohoPapa
  • ベストアンサー率65% (455/693)
回答No.1

こんな感じでしょうか。 (手元に環境がないので未確認です。) (文法チェックすら行っていません)  Dim i As Long  Dim AdCnt As Long    For i = 0 To DataGridView.RowCount - 2   AdCnt = 0   Do    AdCnt = AdCnt + 1    If DataGridView.Rows(i).Cells(0).Value + AdCnt <> _      DataGridView.Rows(i + 1).Cells(0).Value Then     MsgBox Format(DataGridView.Rows(i).Cells(0).Value + AdCnt, "YYYY/MM/DD") & _      "が未登録です"    Else     Exit Do    End If   Loop  Next

hatanankayuta
質問者

お礼

できなかったです~><

関連するQ&A