dtn = New DateTime(dtn.Year, dtn.Month, 1).AddMonths(2).AddDays(-1)
Dim number As Integer = 100 Dim i As Integer Dim dtn As Date = "30/09/2012" Dim day As Integer = dtn.Day For i = 1 To number Try 'ici le mois de février (28 ou 29 jours) ainsi qu'un 31 avril 'par exemple provoquera une erreur dtn = New DateTime(dtn.Year, dtn.Month, day).AddMonths(1) Catch ex As ArgumentOutOfRangeException dtn = New DateTime(dtn.Year, dtn.Month + 1, day) End Try 'petite correction sur Format (obsolète) remplacé par String.Format Console.WriteLine(String.Format("{0:d}", dtn)) Next
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question'... Dim DateResultat as Date For i = 1 To number dateResultat = dtn.AddMonths(i) Console.WriteLine(Format(dateresultat, "dd/ MM / yyyy").ToString()) Next
Sub Main() Dim number As Integer = 100 Dim i As Integer Dim dtn As Date = "30/09/2012" For i = 1 To number dtn = dtn.AddMonths(1) Select Case dtn.Day Case 1 To 28 Console.WriteLine(dtn) Case 29 Select Case dtn.Month Case 1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 dtn.Day = 29 Console.WriteLine(dtn) Case 2 Console.WriteLine(Format(CDate(Date.DaysInMonth(dtn.Year, dtn.Month) & "/" & dtn.Month & "/" & dtn.Year), "dd/ MM / yyyy").ToString()) End Select Case 30 Select Case dtn.Month Case 1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 dtn.Day = 30 Console.WriteLine(dtn) Case 2 Console.WriteLine(Format(CDate(Date.DaysInMonth(dtn.Year, dtn.Month) & "/" & dtn.Month & "/" & dtn.Year), "dd/ MM / yyyy").ToString()) End Select Case 31 Select Case dtn.Month Case 1, 3, 5, 7, 8, 10, 12 dtn.Day = 31 Console.WriteLine(dtn) Case 4, 6, 9, 11 dtn.Day = 30 Console.WriteLine(dtn) Case 2 Console.WriteLine(Format(CDate(Date.DaysInMonth(dtn.Year, dtn.Month) & "/" & dtn.Month & "/" & dtn.Year), "dd/ MM / yyyy").ToString()) End Select End Select Next Console.ReadLine() End Sub
Sub Main() Dim number As Integer = 100 Dim i As Integer Dim dtn As Date = "30/09/2012" For i = 1 To number dtn = dtn.AddMonths(1) Select Case dtn.Day Case 1 To 28 Console.WriteLine(Format(CDate(dtn.Day & "/" & dtn.Month & "/" & dtn.Year), "dd/ MM / yyyy").ToString()) 'Console.WriteLine(dtn) Case 29 Select Case dtn.Month Case 1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 Console.WriteLine(Format(CDate(29 & "/" & dtn.Month & "/" & dtn.Year), "dd/ MM / yyyy").ToString()) Console.WriteLine(dtn) Case 2 Console.WriteLine(Format(CDate(Date.DaysInMonth(dtn.Year, dtn.Month) & "/" & dtn.Month & "/" & dtn.Year), "dd/ MM / yyyy").ToString()) End Select Case 30 Select Case dtn.Month Case 1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 Console.WriteLine(Format(CDate(30 & "/" & dtn.Month & "/" & dtn.Year), "dd/ MM / yyyy").ToString()) Case 2 Console.WriteLine(Format(CDate(Date.DaysInMonth(dtn.Year, dtn.Month) & "/" & dtn.Month & "/" & dtn.Year), "dd/ MM / yyyy").ToString()) End Select Case 31 Select Case dtn.Month Case 1, 3, 5, 7, 8, 10, 12 Console.WriteLine(Format(CDate(31 & "/" & dtn.Month & "/" & dtn.Year), "dd/ MM / yyyy").ToString()) Case 4, 6, 9, 11 Console.WriteLine(Format(CDate(30 & "/" & dtn.Month & "/" & dtn.Year), "dd/ MM / yyyy").ToString()) Case 2 Console.WriteLine(Format(CDate(Date.DaysInMonth(dtn.Year, dtn.Month) & "/" & dtn.Month & "/" & dtn.Year), "dd/ MM / yyyy").ToString()) End Select End Select Next Console.ReadLine() End Sub