JavascriptProva

martedì 11 settembre 2012

Calcolo del numero dei giorni del mese

Ecco riscritto il codice che calcola il numero dei giorni del mese.
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 Sub
Funziona! Ed è molto più breve!!!
(ho provato con febbraio perchè si distingue dagli altri, e quest'anno è pure bisestile!)

Nessun commento:

Posta un commento