急啊!输入月和年怎么获得这个月的全部星期开始和结束日期?
如输入2006,12得到
11.26-12.2
12.3-12.9
。。
。。
12.31-01.06

解决方案 »

  1.   

    如果输入2006,12
    通过Calendar将这个日期至入,即2006-12-01,然后便利到2006-12-31(通过add(int field,int num))
    每次判断一下这天是不是getFirstDayOfWeek()就可以了
      

  2.   

    楼主看看这个文章吧:)
    http://ruolin-yueyue.javaeye.com/blog/forum/
      

  3.   

    public static void main(String args[]){
        SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
        int year=2007;
        int month=1;//1月就写0,2月是1 (month从0开始的)
        Calendar c=Calendar.getInstance();
        c.set(Calendar.YEAR,year);
        c.set(Calendar.MONTH,month);
        c.set(Calendar.DAY_OF_MONTH,1);
        while(c.get(Calendar.MONTH)==month){
          if(c.get(Calendar.DAY_OF_WEEK)==c.getFirstDayOfWeek()){
            System.out.println(sdf.format(c.getTime()));
          }
          c.add(c.DAY_OF_MONTH,1);
        }
      }
      

  4.   

    实现方法有太多种了
    这个仅供参考  public static void main(String args[]){
          SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
          int year=2006;
          int month=11;//1月就写0,2月是1 (month从0开始的)
          Calendar c=Calendar.getInstance();
          c.set(Calendar.YEAR,year);
          c.set(Calendar.MONTH,month);
          c.set(Calendar.DAY_OF_MONTH,1);
          boolean isHalfWeekAhead=false;
          if(c.get(c.DAY_OF_WEEK)!=c.getFirstDayOfWeek()){
            isHalfWeekAhead=true;
          }
          while(c.get(Calendar.MONTH)==month){
            if(c.get(Calendar.DAY_OF_WEEK)==c.getFirstDayOfWeek()){
              Date start=c.getTime();
              c.add(c.DAY_OF_MONTH,6);
              Date end=c.getTime();
              if(isHalfWeekAhead){
                Date fsd=new Date(start.getTime()-7*24L*3600L*1000L);
                Date fed=new Date(end.getTime()-7*24L*3600L*1000L);
                System.out.println(sdf.format(fsd)+"---"+sdf.format(fed));
                isHalfWeekAhead=false;
              }
              System.out.println(sdf.format(start)+"---"+sdf.format(end));
            }
            c.add(c.DAY_OF_MONTH,1);
          }
        }