【发布时间】:2011-01-20 12:32:42
【问题描述】:
是否有一个简单的内置函数可以用来从日历周/年组合中获取日期实例?
应该可以在文本框中输入10w2005,然后我会从中创建日期07 March 2005。
星期一应该是第一天,CalendarWeekRule 应该是 FirstFullWeek。
我的第一个方法是:
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
【问题讨论】:
标签: c# .net vb.net .net-4.0 calendar