Eine bestimte Dauer vor jetziger zeit Listview färben!

  • VB.NET

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von Manu67100.

    Eine bestimte Dauer vor jetziger zeit Listview färben!

    Hallo liebe Community( :thumbup: ),
    Ich arbeite auf einem zeitplaner.
    Auf der form befindet sich eine listview.
    Mein ziel ist es eine bestimmte zeit vor der jetzigen Zeit das jeweilige item zu färben
    - 1 Stunde davor : grün
    - 30 minuten davor : gelb
    - 15 minuten davor : rot
    Mein jetztiger code:

    VB.NET-Quellcode

    1. Private Sub ListviewColoring(ByVal Nowhour As Integer, ByVal Nowmin As Integer)
    2. For Each i As ListViewItem In ListView1.Items
    3. Dim values() As String = i.Text.Split(":"c) ' Von 18:40 zu 18 in Value(0) und 40 in Value(1)
    4. If i.Checked = False Then
    5. If Nowhour = values(0) Then
    6. If values(1) >= Nowmin + 15 And values(1) <= Nowmin + 30 Then
    7. i.BackColor = Color.Yellow
    8. ElseIf values(1) >= Nowmin And values(1) <= Nowmin + 15 Then
    9. i.BackColor = Color.Red
    10. End If
    11. Else
    12. End If
    13. Else
    14. End If
    15. Next
    16. End Sub

    Doch leider geht es nicht: wenn es 19:03 ist und die angegebene zeit ( listviewitem .text) 18: 59 würde dieser eintrag nicht gefärbt. Irgent eine andere idee :?:
    Ich freue mich auf eure Hilfe. Manu
    Danke,
    Aber habe ein anderes problem: wenn ein eintrag in 1 oder mehr sunden ist , wird er in color.Wheat gefärbt...

    VB.NET-Quellcode

    1. Private Sub ListviewColoring()
    2. For Each i As ListViewItem In ListView1.Items
    3. If i.Checked = False Then
    4. If i.BackColor = Color.Tomato Or i.BackColor = Color.Teal Then
    5. Else
    6. Dim start As DateTime = DateTime.Now
    7. Dim va() As String = i.Text.Split(":"c)
    8. Dim setedtime As DateTime = DateTime.Now.AddHours(va(0))
    9. setedtime = DateTime.Now.AddMinutes(va(1))
    10. Dim span As Double = (setedtime - start).TotalMinutes
    11. Dim nowmin As Integer = start.Minute
    12. Dim nowh As Integer = start.Hour
    13. Dim setmin As Integer = va(1)
    14. Dim seth As Integer = va(0)
    15. If (setmin - nowmin) >= 0 And (seth - nowh) >= 0 Then
    16. '59 - 30 Green
    17. If span <= 59 And span >= 30 Then
    18. i.BackColor = Color.LightGreen
    19. End If
    20. If span <= 30 And span >= 15 Then
    21. '30 - 15 Green
    22. i.BackColor = Color.Yellow
    23. End If
    24. If span <= 15 And span >= 1 Then
    25. '15 - 1 Green
    26. i.BackColor = Color.Yellow
    27. End If
    28. Else
    29. i.BackColor = Color.Wheat
    30. End If
    31. End If
    32. Else
    33. i.BackColor = Color.Teal
    34. End If
    35. Next
    36. End Sub

    MFG manu