Ciao.
Questo è il codice:
While (thisReader.Read())
Dim item As New ListViewItem(thisReader.Item(0).ToString, 0)
item.SubItems.Add(thisReader.Item(1).ToString)
item.SubItems.Add(thisReader.Item(2).ToString)
item.SubItems.Add(thisReader.Item(3).ToString)
item.SubItems.Add(thisReader.Item(4).ToString)
Dim datTim1 As Date
Dim datTim2 As Date
datTim1 = Date.Parse(thisReader.Item(3).ToString)
datTim2 = Date.Parse(thisReader.Item(4).ToString)
''QUESTA PARTE L'HO AGGIUNTA IO
''=================================================
Select Case thisReader("TipoOp").ToString
Case "NU"
Case "UM"
For i As Integer = 0 To 2
item.SubItems.Add(New ListViewItem.ListViewSubItem)
Next
Case "CA"
For i As Integer = 0 To 5
item.SubItems.Add(New ListViewItem.ListViewSubItem)
Next
End Select
''=================================================
'ANNI
Dim wY As Long
wY = DateDiff("yyyy", datTim1, datTim2)
If datTim2 < DateSerial(datTim2.Year, datTim1.Month, datTim1.Day) Then
wY = wY - 1
item.SubItems.Add(wY.ToString)
End If
item.SubItems.Add(wY.ToString)
'--------------------------------
'MESI
Dim wM As Long
wM = DateDiff("m", datTim1, datTim2)
wM = wM - (wY * 12)
If DatePart("d", datTim1) > DatePart("d", datTim2) Then
wM = wM - 1
item.SubItems.Add(wM.ToString)
End If
item.SubItems.Add(wM.ToString)
'--------------------------------
'GIORNI
Dim GiornoInizio As Int32
Dim GiornoFine As Int32
Dim wD As Long
Dim TempGiornoInizio As Date
GiornoInizio = DatePart("d", datTim1)
GiornoFine = DatePart("d", datTim2)
If GiornoFine >= GiornoInizio Then
wD = GiornoFine - GiornoInizio + 1
item.SubItems.Add(wD.ToString)
Else
TempGiornoInizio = DateAdd("m", -1, datTim2)
wD = DateDiff("d", TempGiornoInizio, datTim2) - (GiornoInizio - GiornoFine) + 1
item.SubItems.Add(wD.ToString)
End If
ListView1.Items.Add(item) ''<------QUESTO L'HO SPOSTATO IO
End While
Prova a vedere se è quello che ti serve.
Mi sono permesso di fare anche qualche aggiustamento sulla tipizzazione delle variabili e sulla conversioni di tipi (vedi Date.Parse).
Ti consiglio, per le prossime volte, di impostare OptionStrict On in modo da evitare conversioni implicite e di conseguenze possibili errori a run time.
Facci sapere...
Ciao