根据"日期"字段查找一周的星期一

Wil*_*iam 2 vb.net

这是我的问题,我想以日期格式返回给定周的星期一.

到目前为止,我付出了努力.

码:

Dim Diff
Dim cDate
Dim prday
prday = [table.datefield]
Diff = Cint(0 - (Weekday(prday, 2)))
cDate = DateAdd("d", Diff, prday)
Result = cDate
Run Code Online (Sandbox Code Playgroud)

然而,这很不幸地在18/12/1899返回.不完全是我想要的...... 2013年会很好.我出错的地方有哪些提示?

注意:

从数据库表中提取的具体日期是在不同的应用程序中完成的.此代码应生成将在标签上显示的日期.

dba*_*ett 7

唯一的问题是你想如何对待星期日的日期.

'Sunday as first day of week
Dim someDate As DateTime = DateTime.Parse("Apr 28, 2013")
'calculate monday
'note:  for Sunday this returns next Monday, i.e Apr 28, 2013 returns Apr 29th
Dim monDate As DateTime = someDate.AddDays(DayOfWeek.Monday - someDate.DayOfWeek)

'Monday as first day of week
Dim someDate As DateTime = DateTime.Parse("Apr 28, 2013")
'calculate monday
If someDate.DayOfWeek = DayOfWeek.Sunday Then someDate = someDate.AddDays(-1)
Dim monDate As DateTime = someDate.AddDays(DayOfWeek.Monday - someDate.DayOfWeek)
Run Code Online (Sandbox Code Playgroud)