есть простая встроенная функция, которую я мог бы использовать для получения экземпляра даты из календаря/год-комбинации?Преобразование календарной недели в дату
Должно быть возможно ввести 10w2005
в TextBox, и я создам дату 07 March 2005
.
Понедельник должен быть первым днем, а CalendarWeekRule должен быть первымFullWeek.
Мой первый подход:
Dim w As Int32 = 10
Dim y As Int32 = 2005
Dim d As New Date(y, 1, 1)
d = d.AddDays(7 * w)
Но это не работает, потому что FirstDay- CalendarWeekRule не применяются.
Заранее спасибо
Редактировать:
это то, что я уже закончил (спасибо fjdumont за ссылку):
Public Shared Function FirstDateOfWeek(ByVal year As Integer, ByVal weekOfYear As Integer) As DateTime
Dim jan1 As New DateTime(year, 1, 1)
Dim daysOffset As Integer = CInt(Globalization.CultureInfo.CurrentCulture.DateTimeFormat.FirstDayOfWeek) - CInt(jan1.DayOfWeek)
Dim firstWeekDay As DateTime = jan1.AddDays(daysOffset)
Dim curCulture As System.Globalization.CultureInfo = System.Globalization.CultureInfo.CurrentCulture
Dim firstWeek As Integer = curCulture.Calendar.GetWeekOfYear(jan1, curCulture.DateTimeFormat.CalendarWeekRule, curCulture.DateTimeFormat.FirstDayOfWeek)
If firstWeek <= 1 Then
weekOfYear -= 1
End If
Return firstWeekDay.AddDays(weekOfYear * 7)
End Function
Так что ответ: нет простой встроенной функции. Благодарю. –