主题:求日期 每周星期一的日期
wbyoulove
[专家分:4830] 发布于 2006-05-11 00:34:00
给出一个日期 ,请得出该日期所在周的星期一的年月日
回复列表 (共6个回复)
沙发
jzyray [专家分:20610] 发布于 2006-05-11 16:24:00
DateTime dt=new DateTime(date_str);
dt.AddDays(-((int)dt.DayOfWeek+6)%7);
Console.WriteLine(dt.ToString());
板凳
wbyoulove [专家分:4830] 发布于 2006-05-11 17:28:00
我试过了不行``
DateTime dt=new DateTime(2006,05,11);
dt.AddDays(-((int)dt.DayOfWeek+6)%7);
Console.WriteLine(dt.ToString());
你运行试试`` 结果是2006,05,11
3 楼
jzyray [专家分:20610] 发布于 2006-05-11 22:12:00
忘了赋值了~~~
DateTime dt = new DateTime(2006, 05, 11);
dt = dt.AddDays(-((int)dt.DayOfWeek + 6) % 7);
Console.WriteLine(dt.ToString());
4 楼
wbyoulove [专家分:4830] 发布于 2006-05-11 23:18:00
请你能解释一下`dt = dt.AddDays(-((int)dt.DayOfWeek + 6) % 7); 的意思
我看不懂, 谢谢`
5 楼
yuhua [专家分:1730] 发布于 2006-05-12 09:35:00
我解释下,版主看看正确否:
dt.DayOfWeek 这里得到输入日期时星期几
(dt.DayOfWeek+6)%7 是想得到与周一差几天 PS:dt.DayOfWeek-1 是不等价的因为周日是0
Adddays() 方法返回一新的DateTime类型
dt = dt.AddDays(-((int)dt.DayOfWeek + 6) % 7)
这句就得到了输入日期所在周的周一的日期
6 楼
jzyray [专家分:20610] 发布于 2006-05-12 13:32:00
楼上正解
我来回复