日期:2014-05-18  浏览次数:20419 次

|M| 算两个时间内有多少个星期 快帮一下
StartBookDay   =   StartBookDay.AddDays(-(Int32)StartBookDay.DayOfWeek);
EndBookDay   =   EndBookDay.AddDays(+(7   -   (Int32)EndBookDay.DayOfWeek));
开始时间的星期最前一天
结束时间的星期最后一天
相除

但我这里星期定义的开始一天为   星期一   结束为   星期日

我要怎么写两个时间的星期数最为科学



------解决方案--------------------
没什么问题呀。
因为按一个星期计算是一定有误差的。比如一个星期多3天你到底算几个星期?
反正只要保证两个时间是同单位就可以减。

至于误差和舍入怎么定义就要看实际需要了。
------解决方案--------------------
同一年:
结果时间所在的周(一年中)-开始时间所在的周(一年中)

不同一年:
52-开始时间所在的周(一年中)+年差×52+结束时间所在的周(一年中)
------解决方案--------------------
算出起始日期的下个周日的日期. 算出结束日期的上周日的日期,这两个日期的星期数是整数. 然后 +2 不重合 或者+1 重合一个日期 或者+0 都不重合.
------解决方案--------------------
查询当前周:

select * from table
where datediff(wk, 你的日期栏位, getdate())=0

------解决方案--------------------
d
------解决方案--------------------
select * from table
where datediff(wk, 你的日期栏位, getdate())=0

yes
------解决方案--------------------
最好按自然周来确定

楼主的日期是从数据库取了再判断,还是不用数据库的数据?
------解决方案--------------------
DateTime dt1 = DateTime.Parse( "2007-5-19 "); DateTime dt2 = DateTime.Now; DateTime dtfDay = dt1.AddDays(-1 * (int)dt1.DayOfWeek); DateTime dtlDay = dt2.AddDays(-1*(int)dt2.DayOfWeek);


int iWeeks = ((TimeSpan)(dtlDay - dtfDay)).Days / 7; if (dtlDay != dt2) { iWeeks++; } Response.Write(iWeeks.ToString());
------解决方案--------------------
up
------解决方案--------------------
不错