Niente di eccezionale ma abbastanza utile:
Public Class myDaysOfYear
Public Shared Function GetFirstDayOfMonth(ByVal data As Date) As Date
Return DateTime.Parse(String.Format("01/{0}/{1}", data.Month, data.Year))
End Function
Public Shared Function GetNameOfFirstDayOfMonth(ByVal data As Date) As String
Return Globalization.CultureInfo.CurrentCulture.DateTimeFormat.GetDayName(GetFirstDayOfMonth(data).DayOfWeek)
End Function
Public Shared Function GetLastDayOfMonth(ByVal data As Date) As Date
Return DateTime.Parse(String.Format("{0}/{1}/{2}", Date.DaysInMonth(data.Year, data.Month), data.Month, data.Year))
End Function
Public Shared Function GetNameOfLastDayOfMonth(ByVal data As Date) As String
Return Globalization.CultureInfo.CurrentCulture.DateTimeFormat.GetDayName(GetLastDayOfMonth(data).DayOfWeek)
End Function
End Class
Le funzioni della classe si richiamano così:
Dim NomeDelPrimoGiornoDelMese As String = myDaysOfYear.GetNameOfFirstDayOfMonth(DateTime.Today)
Dim DataPrimoGiornoDelMese As Date = myDaysOfYear.GetFirstDayOfMonth(DateTime.Today)
Dim NomeUltimoGiornoDelMese As String = myDaysOfYear.GetNameOfLastDayOfMonth(DateTime.Today)
Dim DataUltimoGiornoDelMese As Date = myDaysOfYear.GetLastDayOfMonth(DateTime.Today)