io ho una listbox popolata con tutti i giorni dell'anno
popolata in questo modo;
codice:
Dim s As Long = ListBox3.Text.Substring(6, 4)
        For i As Long = 1 To 12
            For z As Long = 1 To Date.DaysInMonth(s, i)
                Dim da = z.ToString("00") & "/" & i.ToString("00") & "/" & s
                Application.DoEvents()
                ListBox4.Items.Add(da)
            Next
        Next
bene, la listbox3 ha una data iniziale, in base ad un certo numero che potrebbe essere:

[12 o 8 o 6 o 4]
se 12 il valore in giorni è 30
se 8 il ......................è 45
se 6 il ......................è 60
se 4 il ......................è 90

ad un bottone
eseguo:
dove mese è il corrispondente di 12
codice:
 Select Case mese

                Case Is = 12
                    'ListBox4.Items(30)

                    Dim periodo = Date.DaysInMonth(ListBox3.Text.Substring(6, 4), ListBox3.Text.Substring(3, 2))
                    Dim inizio = ListBox3.Text.Replace(ListBox3.Text.Substring(3, 2), "02")
                    Dim index As Integer = ListBox4.FindString(inizio)

                    For i As Integer = index To index + Date.DaysInMonth(ListBox3.Text.Substring(6, 4), 2)  '30
                        If Date.DaysInMonth(ListBox3.Text.Substring(6, 4), 2) <> 31 Then
                            Dim differenza = 31 - Date.DaysInMonth(ListBox3.Text.Substring(6, 4), 2)
                            Min.Text = ListBox4.Items(index + 1 - differenza)
                            Mout.Text = ListBox4.Items(index - differenza + Date.DaysInMonth(ListBox3.Text.Substring(6, 4), 2))  '30)
                        End If
                    Next
ma solo nel caso in cui la data iniziale è 01/ la risposta è corretta, invece se la data iniziale diventa ad esempio 15/ il risultato non mi viene restituito correttamente.
di fatti mi restituisce 14/01/2008 13/02/2008
invece dovrebbe essere 15/01/2008 14/02/2008.
dove sbaglio?