【发布时间】:2017-05-25 11:22:47
【问题描述】:
我正在尝试使用扩展方法将一周添加到给定日期 然后检索一周中第一天的日期(从 AddWeeks 函数返回的日期)
Private Sub doSomething()
Dim dt As DateTime = DateTime.Now.AddWeeks(1)
dt = dt.StartOfWeek(dt.DayOfWeek) ' The year returned here is 0001
End Sub
<Extension()>
Public Function AddWeeks(ByVal dt As DateTime, numOfWeeks As Integer) As
DateTime
Return dt.AddDays(numOfWeeks * 7)
End Function
<Extension()>
<Extension()>
Public Function StartOfWeek(ByVal dt As DateTime, start As DayOfWeek) As DateTime
Dim diff As Integer = dt.DayOfWeek - start
If (diff < 0) Then
diff += 7
End If
Return dt.AddDays(-diff)
End Function
这段代码的问题是返回的日期是错误的年份,总是像dd/mm/0001
【问题讨论】:
-
我刚刚尝试了您的代码,但它没有将年份返回为
0001。它不能正常工作,因为StartOfWeek方法错误,但与返回为dd/mm/0001的日期无关