io ho una listbox popolata con tutti i giorni dell'anno
popolata in questo modo;
bene, la listbox3 ha una data iniziale, in base ad un certo numero che potrebbe essere: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
[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
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.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
di fatti mi restituisce 14/01/2008 13/02/2008
invece dovrebbe essere 15/01/2008 14/02/2008.
dove sbaglio?![]()

Rispondi quotando