学期周次与日期的算法

破碎的脸 2012-08-10 11:58:13
学期包含开学日期和学期结束日期。
输入任意一个日期,计算出这处于该学期的第几周。(一周为七天,星期天和星期六包括在本周,新的周是以星期一开始)。
有没有人能给个好点的算法?
...全文
245 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
ParanoidKing 2012-08-10
  • 打赏
  • 举报
回复
错了一点

int GetWeek(DateTime dt)
{
DateTime dtStart = 开学日期;
DateTime dtEnd = 结束日期;
if (dt < dtStart || dt > dtEnd)
throw new ArgumentException("不在范围内");

while (dtStart.DayOfWeek != DayOfWeek.Monday)
dtStart = dtStart.AddDays(-1); //确保第一天是星期一

return (dt - dtStart).Days / 7 + 1;
}
newtee 2012-08-10
  • 打赏
  • 举报
回复
楼主好好想想 C语言版的问题
破碎的脸 2012-08-10
  • 打赏
  • 举报
回复
第一天不一定是星期一,开学日期和结束日期是用户自行设定的。
ParanoidKing 2012-08-10
  • 打赏
  • 举报
回复

int GetWeek(DateTime dt)
{
DateTime dtStart = 开学日期;
DateTime dtEnd = 结束日期;
if(dt < dtStart || dt > dtEnd)
throw new ArgumentException("不在范围内");

while(dtStart.DayOfWeek != DayOfWeek.Monday)
dtStart.AddDays(-1); //确保第一天是星期一

return (dt - dtStart).Days / 7 + 1;
}
破碎的脸 2012-08-10
  • 打赏
  • 举报
回复
感谢回答。。。
破碎的脸 2012-08-10
  • 打赏
  • 举报
回复
是的,我就发现有死循环- -!!正在测试你的方法,如果通过,满分送上。

110,539

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧