#15 Ricerca del primo ed ultimo giorno del mese

Queste 2 funzioni, abbastanza simili, calcolano rispettivamente la data del primo giorno e dell’ultimo giorno del mese.
I valori restituiti sono 2:

  • PrimoGiornoDelMese e UltimoGiornoDelMese restituiscono una stringa contenente il nome del giorno della settimana
  • i parametri dataPrimoGiorno e dataUltimoGiorno passati per riferimento vengono modificati per restituire la corrispondente data del primo e dell’ultimo giorno
  Public Function PrimoGiornoDelMese(ByVal data _ 
          As Date, ByRef dataPrimoGiorno As Date) As String 
  ' Parametri di input: 
    ' - data:            una data di riferimento per i calcoli 
    ' - dataPrimoGiorno: parametro passato per riferimento e 
    '                    modificato dalla funzione 
    ' 
  ' Parametri di output: 
    ' - PrimoGiornoDelMese: stringa contenente il nome del primo 
    '                       giorno del mese 
    ' - dataPrimoGiorno:    data del primo giorno del mese 
    
    Dim numeroGiornoSettimana As Integer 
    ' creazione array con nomi della settimana: 
    Dim nomiGiorniSettimana As String() = 
        ("Domenica", "Lunedì", "Martedì", _ 
        "Mercoledì", "Giovedì", "Venerdì", "Sabato"}    

    ' conversione della data da formato stringa (gg/mm/aaaa) a 
    ' formato DateTime 
    dataPrimoGiorno = 
        DateTime.Parse("01/" & data.Month & _ 
            "/" & data.Year)    

    ' calcolo del numero del giorno della settimana (da 0 a 6) 
    numeroGiornoSettimana = dataPrimoGiorno.DayOfWeek 
    
    ' estrazione del nome del giorno della settimana in base al 
    ' numero calcolato nell'istruzione precedente 
    PrimoGiornoDelMese = nomiGiorniSettimana(numeroGiornoSettimana) 
    
  End Function 
  Public Function UltimoGiornoDelMese(ByVal data _ 
          As Date, ByRef dataUltimoGiorno As Date) As String 
  ' Parametri di input: 
    ' - data:             una data di riferimento per i calcoli 
    ' - dataUltimoGiorno: parametro passato per riferimento e 
    '                     modificato dalla funzione 
    ' 
  ' Parametri di output: 
    ' - UltimoGiornoDelMese: stringa contenente il nome dell'ultimo 
    '                        giorno del mese 
    ' - dataUltimoGiorno:    data dell'ultimo giorno del mese 
    
    Dim numeroGiornoSettimana As Integer 
    ' creazione array con nomi della settimana: 
    Dim nomiGiorniSettimana As String() = _         
        {"Domenica", "Lunedì", "Martedì", _ 
        "Mercoledì", "Giovedì", "Venerdì", "Sabato"} 
                                            
    ' conversione della data da formato stringa (gg/mm/aaaa) a 
    ' formato DateTime 
    dataUltimoGiorno = _ 
        DateTime.Parse(data.DaysInMonth(data.Year, _ 
            data.Month) & "/" & data.Month & "/" & data.Year) 
                                      
    ' calcolo del numero del giorno della settimana (da 0 a 6) 
    numeroGiornoSettimana = dataUltimoGiorno.DayOfWeek 
    
    ' estrazione del nome del giorno della settimana in base al 
    ' numero calcolato nell'istruzione precedente 
    UltimoGiornoDelMese = _ 
        nomiGiorniSettimana(numeroGiornoSettimana) 
  End Function

Per testare le funzioni di cui sopra, questo è del codice che può essere inserito nell'evento Load di una form o nell'evento Click di un pulsante:

  Dim dataPrimoGiorno As Date 
  Dim dataUltimoGiorno As Date    

  ' calcolo il nome e la data del primo e dell'ultimo giorno 
  ' di Maggio 2008 
  System.Windows.Forms.MessageBox.Show("" & _       
      PrimoGiornoDelMese(#5/17/2008#, _ 
      dataPrimoGiorno) & " " & dataPrimoGiorno) 
  System.Windows.Forms.MessageBox.Show("" & _ 
      UltimoGiornoDelMese(#5/17/2008#, _ 
      dataUltimoGiorno) & " " & dataUltimoGiorno)    

  ' calcolo il nome e la data del primo e dell'ultimo 
  ' giorno di Marzo 2008 
  System.Windows.Forms.MessageBox.Show("" & _ 
      PrimoGiornoDelMese(#3/19/2008#, _ 
      dataPrimoGiorno) & " " & dataPrimoGiorno) 
  System.Windows.Forms.MessageBox.Show("" & _ 
      UltimoGiornoDelMese(#3/19/2008#, _ 
      dataUltimoGiorno) & " " & dataUltimoGiorno)
About these ads

Pubblicato il 23 gennaio 2008, in Tips con tag . Aggiungi il permalink ai segnalibri. Lascia un commento.

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...

Iscriviti

Ricevi al tuo indirizzo email tutti i nuovi post del sito.

Unisciti agli altri 846 follower

%d blogger cliccano Mi Piace per questo: