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?