怎样计算当前日期属于这年的第几周。每周从星期一算起,这一年的第一周是从星期一算起,所以第一周的第一天不一定是1月1号

huanriguang 2012-04-16 02:56:07
怎样计算当前日期属于这年的第几周。每周从星期一算起,每一年的第一周都是是从星期一算起,所以第一周的第一天不一定是1月1号。一年有52周,例如 2011年 第一周就是2011-01-03 至2011-01-09 。2012年第一周就是2012-01-02至2012-01-08。现在我传一个日期 计算是这年的哪周,结果应该是1-52之间的数字,请各位大侠帮忙
...全文
3970 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
EnForGrass 2012-04-16
  • 打赏
  • 举报
回复
这样呢?

/// <summary>
/// 取指定日期是一年中的第几周
/// </summary>
/// <param name="dtime">给定的日期</param>
/// <returns>数字 一年中的第几周</returns>
public static int weekofyear(DateTime dtime)
{
int weeknum = 0;
DateTime tmpdate = DateTime.Parse(dtime.Year.ToString() + "/1" + "/1");
DayOfWeek firstweek = tmpdate.DayOfWeek;
if ((int)firstweek > dtime.DayOfYear)
{
return 52;
}
for (int i = (int)firstweek + 1; i <= dtime.DayOfYear; i = i + 7)
{
weeknum = weeknum + 1;
}
return weeknum;
}
huanriguang 2012-04-16
  • 打赏
  • 举报
回复
是正确的,谢谢高手啊![Quote=引用 8 楼 的回复:]

试试看:
C# code
DateTime dt = new DateTime(2010, 12, 30);
int index = 7;
if (dt.DayOfWeek > DayOfWeek.Sunday)
index = (int)dt.DayOfWeek;
int weekOfYear = (d……
[/Quote]
  • 打赏
  • 举报
回复
现在日期-当年的1月1号 =天数。(有这个函数。sql有,c#更有)
(天数+6)/7 取整, 就是 周了。
dalmeeme 2012-04-16
  • 打赏
  • 举报
回复
试试看:
		DateTime dt = new DateTime(2010, 12, 30);
int index = 7;
if (dt.DayOfWeek > DayOfWeek.Sunday)
index = (int)dt.DayOfWeek;
int weekOfYear = (dt.DayOfYear - index) / 7 + 1;
if (dt.DayOfYear - index < 0)
weekOfYear = 52;
Response.Write(weekOfYear);
huanriguang 2012-04-16
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 的回复:]

那2011年1月1日怎么算?算第52周,还是第0周?
[/Quote]2011年1月1日算第52周
dalmeeme 2012-04-16
  • 打赏
  • 举报
回复
那2011年1月1日怎么算?算第52周,还是第0周?
huanriguang 2012-04-16
  • 打赏
  • 举报
回复
具体怎么做的[Quote=引用 4 楼 的回复:]

首先得知道第一天是星期几吧:
可以把2000年1月1日作为一个标准,这天好像是周六。
用timespan计算今年第一天与那天的差的天数,除以7得到周数,如果整除说明今年第一天也是周六,余1是周天,余2是周1。。以此类推,这样就行了吧?
[/Quote]
upc_xiaowei 2012-04-16
  • 打赏
  • 举报
回复
首先得知道第一天是星期几吧:
可以把2000年1月1日作为一个标准,这天好像是周六。
用timespan计算今年第一天与那天的差的天数,除以7得到周数,如果整除说明今年第一天也是周六,余1是周天,余2是周1。。以此类推,这样就行了吧?
huanriguang 2012-04-16
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

http://blog.csdn.net/allen3010/article/details/6828643
[/Quote]结果不是我想要的

62,268

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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