Mi chiedo se esista un modo più breve per ottenere il numero dei giorni di un mese.
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 'Calcolo del numero dei giorni del mese Dim dat, base As Date Dim numero As Integer = 1 Dim mese As Integer = Now.Month dat = CDate("1/" & Now.Month & "/" & Now.Year) base = dat Do dat = dat.AddDays(1) If dat.Month <> base.Month Then Exit Do numero += 1 Loop 'definizione della variabile oggetto Dim casella As Label For n = 0 To numero - 1 casella = New Label 'attribuzione delle proprietà alla label appena istanziata With casella .BorderStyle = BorderStyle.FixedSingle .Left = 0 .Top = .Height * (n Mod numero) End With Me.Controls.Add(casella) Next End Sub
Funziona, ma mi chiedo se esista un metodo in VB.NET che mi possa evitare di fare tutto questo casino...
Ho trovato qualcosina. Ora provo...
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 'Calcolo del numero dei giorni del mese Dim numero As Integer numero = DateTime.DaysInMonth(2012, 2) 'definizione della variabile oggetto Dim casella As Label For n = 0 To numero - 1 casella = New Label 'attribuzione delle proprietà alla label appena istanziata With casella .BorderStyle = BorderStyle.FixedSingle .Left = 0 .Top = .Height * (n Mod numero) End With Me.Controls.Add(casella) Next End SubFunziona! Ed è molto più breve!!!
(ho provato con febbraio perchè si distingue dagli altri, e quest'anno è pure bisestile!)
Nessun commento:
Posta un commento