DateTime _lw = new DateTime(_year, 12, 31);//某年的最后一天
            int _wc = GetWeekNumOfYear(_lw);//最后一天是当年的第几周            for (int i = 1; i <= _wc; i++)
            {
                 DateTime _day = GetDateTimeForWeekFirstDay(_year, i);//获取某周的第一天
...................
        /// <summary>
        /// 返回日期在年份中的第几周
        /// </summary>
        /// <param name="dt"></param>
        /// <returns></returns>
        public  int GetWeekNumOfYear(DateTime dt)
        {
            int days = dt.DayOfYear + (7 - ((int)dt.DayOfWeek + 1));
            return days / 7 + (days % 7 == 0 ? 0 : 1);        }        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));
        }

解决方案 »

  1.   

    liuchaolin
    这个漂亮...但代码没有贴完..能全部发出来吗?
      

  2.   

    Quote: 引用 3 楼 liuchaolin 的回复:
    这是一个控件吗?觉得很不错,能发份给邮箱吗?[email protected]
      

  3.   

    我曾经做过类似的功能,我的思路是,判断某(A)年的一号,是星期几,得到A年的一号是星期几,然后在时间循环AddDay直到年份等于A+1年结束   在循环过程中  通过预先预定的自定义数据结构记录下第几周,是几号到几号, 得到循环过程中的生成的数据结构集合之后 就可以绑定到列表里面现实了。
      

  4.   

    我也是刚遇到这类问题,liuchaolin 按这个显示觉得特别好,我也比较喜欢
      

  5.   

    我也是刚遇到这类问题,liuchaolin 按这个显示觉得特别好,我也比较喜欢
    得到数据集合之后,前端展示,就看你前端功底了塞。