这是我的问题,我想以日期格式返回给定周的星期一.
到目前为止,我付出了努力.
码:
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年会很好.我出错的地方有哪些提示?
注意:
从数据库表中提取的具体日期是在不同的应用程序中完成的.此代码应生成将在标签上显示的日期.
唯一的问题是你想如何对待星期日的日期.
'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)