vb.net将周转换为日期?
我正在开发一个ASPX VB.NET文件。我的任务是将一个表示一年中的一周的整数转换为该结束日期。例如,如果用户选择2011年的第4周,我希望得到日期=1/22/11。如何在VB.NET中执行此操作?您可以使用以下课程的周: 我刚才问过。我还需要一个RegularExpressionValidator(如果您需要的话) 以下是我必须从一年中的一周中获得的日期:vb.net将周转换为日期?,vb.net,date,Vb.net,Date,我正在开发一个ASPX VB.NET文件。我的任务是将一个表示一年中的一周的整数转换为该结束日期。例如,如果用户选择2011年的第4周,我希望得到日期=1/22/11。如何在VB.NET中执行此操作?您可以使用以下课程的周: 我刚才问过。我还需要一个RegularExpressionValidator(如果您需要的话) 以下是我必须从一年中的一周中获得的日期: Public Shared Function FirstDateOfWeek(ByVal year As Integer, ByVal
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
这是家庭作业吗?如果是这样,你真的不应该在这里问。我们可以帮助您指出逻辑/语法方面的缺陷——但双方都不太诚实地完成任务。也许你有一些你尝试过的形式(不起作用),我们可以看看看看这个Dim d=newdatetime(2011,1,1)。AddDays((4-1)*7)不,这不是家庭作业。不过我是VB.NET新手。@Magnus,当我使用上面的代码时,我得到一个错误:“'DateTime'是一个类型,不能用作表达式。”简短说明:Calendar类的GetWeekOfYear方法不一致。另请参见。Hi Tim,如果这不是ISO8601,它是否仍然适用或有效,以用作参考?
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
<asp:RegularExpressionValidator ID="CalWeekFormat" runat="server"
ControlToValidate="TxtCalWeek" Display="None" EnableClientScript="true"
ErrorMessage="Enter valid Year/Calendarweek-Format: examplary format '09w23' or '9w23' for year 2009 and week 23"
style="visibility:hidden"
ValidationExpression="^\d{1,4}[wW](\d|[0-4]\d|5[0123])$"
ValidationGroup="VG_SAVE">*</asp:RegularExpressionValidator>