日期:2014-05-17  浏览次数:20517 次

如何获取一年中某一周是 几号到几号
比如说今年的第44周
我要获取第44周
是10.28号-11.3号(周一到周日)

------解决方案--------------------
Refer this:
http://www.cnblogs.com/insus/tag/Week/
------解决方案--------------------

DateTime dt = new DateTime(2013, 1, 1).AddDays(-1);
DateTime d1 = dt.AddDays((44 - 1) * 7);//2013-10-28
DateTime d2 = d1.AddDays(6);//2013-11-03

------解决方案--------------------
        public DateTime GetDateTimeForWeekFirstDay(int Year, int num)
        {
            DateTime day = new DateTime(Year, 1, 1);
            return day.AddDays(7 * (num - 1) - ((int)day.DayOfWeek % 7 == 0 ? 0 : (int)day.DayOfWeek));
        }


获取某一周的第一天,最后一天用第一天+6
------解决方案--------------------

 DateTime firstDay = new DateTime(2013, 1, 1);
            //第一天周几
            int firstdayofweek = Convert.ToInt32(firstDay.DayOfWeek);
            //第一个周一(周一对应1)
            DateTime firstMonday = firstdayofweek <= 1 ? firstDay.AddDays(1 - firstdayofweek) :
                firstDay.AddDays(8 - firstdayofweek);
            //第44周的日期
            DateTime targetDay = firstMonday.AddDays(7 * (44 - 2));
            Console.Write(targetDay.ToShortDateString());
            Console.ReadKey();

跟楼上大神有出入,我试了2009年相差一天,2013年一样的。我按照周一至周日算的。是不是有错误?