https://stackoverflow.com/questions/2136487/calculate-week-of-month-in-net
System.Globalization.GregorianCalendarがGetWeekOfYearメソッドを持っていて年の第何週か取得できるので、それを使って月の1日目の週番号と指定日の週番号の差で求める。
Public Function GetWeekOfMonth(dDate As Date) As Integer Dim oCalendar = New System.Globalization.GregorianCalendar() Dim nDateWeek = oCalendar.GetWeekOfYear(dDate, Globalization.CalendarWeekRule.FirstDay, DayOfWeek.Sunday) Dim dMonthFirst = New DateTime(dDate.Year, dDate.Month, 1) Dim nMonthFirstWeek = oCalendar.GetWeekOfYear(dMonthFirst, Globalization.CalendarWeekRule.FirstDay, DayOfWeek.Sunday) Return nDateWeek - nMonthFirstWeek + 1 End Function