选择一个起始日期和一个结束日期之后,取得在这个起始日期和结束日期之间的年月
例如:选择2012/01---2012/07想把这个区间内的月份取出来,按照YYYY/MM排列。技术牛人们,帮帮忙。有点急。多谢    用javascript做的

解决方案 »

  1.   

    import java.util.*;  
    import java.text.*;  
    public class Test {  
          
        public static void main(String[] args) throws Exception {  
            GregorianCalendar[] ga=getDate("2012-08-01", "2012-08-15");  
            for(GregorianCalendar e:ga)  
            {  
    //            System.out.println(e.get(Calendar.YEAR)+"年 "+   
    //                               +(e.get(Calendar.MONTH)+1)+"月 "+   
    //                               e.get(Calendar.DAY_OF_MONTH)+"号");   
                System.out.println(eiditime(e));  
            }  
        }  
        /** 
         *  
         * @param startTime 
         * @param endTime 
         * @return 返回开始时间和结束时间之间的每一日 
         * @throws ParseException 
         */  
        public static GregorianCalendar[]  getDate(String startTime,String endTime) throws ParseException  
        {  
            Vector<GregorianCalendar> v=new Vector<GregorianCalendar>();  
            SimpleDateFormat  sdf=new SimpleDateFormat("yyyy-MM-dd");  
            GregorianCalendar gc1=new GregorianCalendar(),gc2=new GregorianCalendar();  
            gc1.setTime(sdf.parse(startTime));  
            gc2.setTime(sdf.parse(endTime));  
            do{  
                GregorianCalendar gc3=(GregorianCalendar)gc1.clone();  
                v.add(gc3);  
                gc1.add(Calendar.DAY_OF_MONTH, 1);               
             }while(!gc1.after(gc2));  
            return v.toArray(new GregorianCalendar[v.size()]);  
        }      
          
        //按格式获取时间   
        public static String eiditime(GregorianCalendar e){  
         String curdate = e.get(Calendar.YEAR)+"";  
             if((e.get(Calendar.MONTH)+1)<10){  
                 curdate = curdate+"0" +(e.get(Calendar.MONTH)+1);  
             }else {  
                 curdate = curdate+(e.get(Calendar.MONTH)+1);  
             }  
             if(e.get(Calendar.DAY_OF_MONTH)<10){  
                 curdate = curdate+"0"+e.get(Calendar.DAY_OF_MONTH);  
             }else{  
                 curdate =curdate+ e.get(Calendar.DAY_OF_MONTH);  
             }  
             return curdate;  
          
       }  
          
      
    }  
      

  2.   


    Date.prototype.addMonths= function(m){
        var d = this.getDate();
        this.setMonth(this.getMonth() + m);
        if (this.getDate() < d)
            this.setDate(0);
    };
    Date.prototype.toDateString=function(){
    return this.getYear()+"/"+(this.getMonth()+1)+"/"+this.getDate();
    }
    var start=new Date("2012/1/1");
    var end=new Date("2012/9/1");
    for(;start<=end;){
    document.write(start.toDateString()+"<br>");
    start.addMonths(1);
    }