0

データベースに既に入力されている日付から 2 週間ごとに、タスクのリマインダー (ユーザーが開始日のスポットでデータベースに追加する) を作成したいと考えています。曜日の位置に基づいて、試してみましたが無駄でした、誰かがアイデアを持っているなら、私は感謝します

cmd5.CommandText = "select * from task where frequence='2W' "
    da5.SelectCommand = cmd1
    da5.Fill(ds5, "0")
    DataGridView6.Columns.Add("fr", "fr")
    DataGridView6.Columns.Add("class", "class")

    For i As Integer = 0 To ds5.Tables(0).Rows.Count - 1
        If Date.Now.DayOfWeek > 3 Then
            If CType(ds5.Tables(0).Rows(i).Item(3), Date).DayOfWeek = Date.Now.DayOfWeek Or CType(ds5.Tables(0).Rows(i).Item(3), Date).DayOfWeek - ???? = Date.Now.DayOfWeek Then
                DataGridView6.Rows.Add(ds5.Tables(0).Rows(i).Item(4), CType(ds5.Tables(0).Rows(i).Item(3), Date).DayOfWeek)
            End If
        End If
        If Date.Now.DayOfWeek < 4 And Date.Now.DayOfWeek <> 0 Then
            If CType(ds5.Tables(0).Rows(i).Item(3), Date).DayOfWeek = Date.Now.DayOfWeek Or CType(ds5.Tables(0).Rows(i).Item(3), Date).DayOfWeek + ???? = Date.Now.DayOfWeek Then
                DataGridView6.Rows.Add(ds5.Tables(0).Rows(i).Item(4), CType(ds5.Tables(0).Rows(i).Item(3), Date).DayOfWeek)
            End If
        End If
    Next

の "??????" 正しい結果を得るために何を入れることができるかわかりません!! 誰か助けてください!

4

1 に答える 1

0

あなたのコメントから理解したように、あなたは間隔分析部分、つまり、今日の日付がデータベースで定義されている特定の条件の前後にあるかどうかを判断することにのみ関心があります ( とstart_dateを使用frequency)。これを処理するためのサンプル コードを次に示します。

Dim start_date As Date = Now.AddDays(-14) 'start_date value to be taken from the DB
Dim frequency As TimeSpan = TimeSpan.FromDays(14) 'Number of days as a function of the given frequency in your DB; this is for 2W.
Dim elapsedDays As TimeSpan = Now.Subtract(start_date)

If (elapsedDays >= frequency) Then
    'NOTIFY USER -> it has passed, at least, "frequency" number of days from "start_date"
    If (elapsedDays > frequency) Then
        Dim addDays As Integer = elapsedDays.Subtract(frequency).Days
        Dim dateWhenTargetMet As Date = Now.AddDays(-addDays)
        'Tell user that the target was met "addDays" ago, on "dateWhenTargetMet" 
    End If
End If

上記のコードは、現在の日付がstart_date+frequency日数と等しい (またはそれ以降である) かどうかをチェックします。

于 2013-09-01T15:08:44.393 に答える