回 帖 发 新 帖 刷新版面

主题:求日期 每周星期一的日期

给出一个日期 ,请得出该日期所在周的星期一的年月日

回复列表 (共6个回复)

沙发

DateTime dt=new DateTime(date_str);
dt.AddDays(-((int)dt.DayOfWeek+6)%7);
Console.WriteLine(dt.ToString());

板凳

我试过了不行``  
DateTime dt=new DateTime(2006,05,11);
dt.AddDays(-((int)dt.DayOfWeek+6)%7);
Console.WriteLine(dt.ToString());
你运行试试`` 结果是2006,05,11

3 楼

忘了赋值了~~~

DateTime dt = new DateTime(2006, 05, 11);
dt = dt.AddDays(-((int)dt.DayOfWeek + 6) % 7);
Console.WriteLine(dt.ToString());

4 楼

请你能解释一下`dt = dt.AddDays(-((int)dt.DayOfWeek + 6) % 7); 的意思
我看不懂, 谢谢`

5 楼

我解释下,版主看看正确否:
dt.DayOfWeek 这里得到输入日期时星期几
(dt.DayOfWeek+6)%7 是想得到与周一差几天 PS:dt.DayOfWeek-1 是不等价的因为周日是0
Adddays() 方法返回一新的DateTime类型

dt = dt.AddDays(-((int)dt.DayOfWeek + 6) % 7)
这句就得到了输入日期所在周的周一的日期

6 楼

楼上正解

我来回复

您尚未登录,请登录后再回复。点此登录或注册