Public Shared Function GetFirstDayOfWeek(ByVal week As Integer, ByVal year As Integer) As DateTime
Dim ciCurr As Globalization.CultureInfo = Globalization.CultureInfo.CurrentCulture
Dim newYearDay As DateTime = New DateTime(year, 1, 1)
Dim firstWeekNum As Integer = ciCurr.Calendar.GetWeekOfYear(newYearDay, Globalization.CalendarWeekRule.FirstFourDayWeek, DayOfWeek.Monday)
Dim firstWeekDay As DateTime = GetFirstDayOfWeek(newYearDay)
If firstWeekNum = 1 Then Week -= 1
Return DateAdd(DateInterval.WeekOfYear, Week, firstWeekDay)
End Function
Public Shared Function GetLastDayOfWeek(ByVal week As Integer, ByVal year As Integer) As DateTime
Dim ciCurr As Globalization.CultureInfo = Globalization.CultureInfo.CurrentCulture
Dim newYearDay As DateTime = New DateTime(year, 1, 1)
Dim firstweekNum As Integer = ciCurr.Calendar.GetWeekOfYear(newYearDay, Globalization.CalendarWeekRule.FirstFourDayWeek, DayOfWeek.Monday)
Dim lastWeekDay As DateTime = GetLastDayOfWeek(newYearDay)
If firstweekNum = 1 Then Week -= 1
Return DateAdd(DateInterval.WeekOfYear, Week, lastWeekDay)
End Function
Public Shared Function GetFirstDayOfWeek(ByVal dt As DateTime) As DateTime
If dt.DayOfWeek = DayOfWeek.Sunday Then
Return dt.AddDays(-6)
End If
Return dt.AddDays(1 - CInt(dt.DayOfWeek))
End Function
Public Shared Function GetLastDayOfWeek(ByVal dt As DateTime) As DateTime
If dt.DayOfWeek = DayOfWeek.Sunday Then
Return dt.AddDays(0)
End If
Return dt.AddDays(7 - CInt(dt.DayOfWeek))
End Function