#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)
Pubblicato il 23 gennaio 2008, in Tips con tag VB.NET. Aggiungi il permalink ai segnalibri. 1 Commento.
Mario ho letto e il tuoi “SUPER” esempi di ALTA programmazione ma … ( ce stà sempre come insegni tu ) ti segnalo un paio di errori di scrittura “veloce” :
1) nella Function PrimoGiornoDelMese
Dim nomiGiorniSettimana As String() =
(“Domenica”, “Lunedì”, “Martedì”, _
“Mercoledì”, “Giovedì”, “Venerdì”, “Sabato”}
Una tonda al posto della graffa.
2) nella Function PrimoGiornoDelMese
dataPrimoGiorno =
DateTime.Parse(“01data.Month & _
“/” & data.Year)
“01” & “/” & mancante
Grazie !!!!
Mi piaceMi piace