比如学校排课,给了开始时间的年月日和结束时间的年月日,在这两个日期之间的每周一都上这课.想在月历上的这个日期内的每个周一都显示这个课程 请问应该如何解决啊

解决方案 »

  1.   

    用dayofweek得到开始日期是周几,然后可以得到第一个周一的日期,然后依次加7。。
      

  2.   


    /**  
         * 计算两个日期间相隔的周数  
         *   
         * @param startDate  
         *            开始日期  
         * @param endDate  
         *            结束日期  
         * @return  
         */  
        public static int computeWeek(Date startDate, Date endDate) {   
      
            int weeks = 0;   
      
            Calendar beginCalendar = Calendar.getInstance();   
            beginCalendar.setTime(startDate);   
      
            Calendar endCalendar = Calendar.getInstance();   
            endCalendar.setTime(endDate);   
      
            while (beginCalendar.before(endCalendar)) {   
      
                // 如果开始日期和结束日期在同年、同月且当前月的同一周时结束循环   
                if (beginCalendar.get(Calendar.YEAR) == endCalendar   
                        .get(Calendar.YEAR)   
                        && beginCalendar.get(Calendar.MONTH) == endCalendar   
                                .get(Calendar.MONTH)   
                        && beginCalendar.get(Calendar.DAY_OF_WEEK_IN_MONTH) == endCalendar   
                                .get(Calendar.DAY_OF_WEEK_IN_MONTH)) {   
                    break;   
      
                } else {   
      
                    beginCalendar.add(Calendar.DAY_OF_YEAR, 7);   
                    weeks += 1;   
                }   
            }   
      
            return weeks;   
        }  
      

  3.   

    http://blog.csdn.net/xianfajushi/archive/2009/10/19/4699664.aspx
      

  4.   

    void Weedays(DateTime dt)
            {
                DateTime start= dt.AddDays(-(int)dt.DayOfWeek);
                DateTime end = start.AddDays(7);
                for (dt = start; dt < end; dt = dt.AddDays(1))
                    Console.WriteLine(dt.DayOfWeek + "," + dt.ToString("yyyy-MM-dd"));
            }http://topic.csdn.net/u/20090602/11/c13210bf-d858-45bc-8f64-6405ea016f90.html