本帖最后由 prince_yu 于 2014-01-09 18:12:58 编辑

解决方案 »

  1.   

    自己看一下API啊,这个应该自己是可以的
      

  2.   

    public static void main(String[] args)throws Exception{
            String dateStr = "2014-01-2";
            //年月周
            SimpleDateFormat sdf = new SimpleDateFormat("YYYY-MM-w");
            Calendar cal = Calendar.getInstance();
            cal.setTime(sdf.parse(dateStr));
            //年月日
            SimpleDateFormat sdf2 = new SimpleDateFormat("YYYY-MM-dd");
            //一周七天
            for (int i=0;i<7;i++){
             //国际标准周天是一个星期的第一天,为了适应国情把周一定为一个星期的第一天
             cal.add(Calendar.DAY_OF_WEEK, 1);
             System.out.println(sdf2.format(cal.getTime()));
            }
      

  3.   


    太谢谢你了.离最后的效果只差了一步.  不知道我只输出周一和周日的日期怎么改?
    还有,for循环中的i没有在下面用到,那它是怎么输出周一到周日的日期的?求指点..
      

  4.   


    public static void main(String[] args)throws Exception{
            String dateStr = "2014-01-2";
            //年月周
            SimpleDateFormat sdf = new SimpleDateFormat("YYYY-MM-w");
            Calendar cal = Calendar.getInstance();
            cal.setTime(sdf.parse(dateStr));
            //年月日
            SimpleDateFormat sdf2 = new SimpleDateFormat("YYYY-MM-dd");        //国际标准的周天,默认第一天就是周天
            System.out.println(sdf2.format(cal.getTime()));        //中国国情的周天,只要加一个星期就可以了。
            cal.add(Calendar.DAY_OF_WEEK, 7);
            System.out.println(sdf2.format(cal.getTime()));        //因为前面加了7天,所以这里减七天回到2014年1月5号,如果没有加7天,下面这行可供可省略
            cal.add(Calendar.DAY_OF_WEEK, -7);
            
            //周一
         cal.add(Calendar.DAY_OF_WEEK,1);
         System.out.println(sdf2.format(cal.getTime()));        
            
    }
      

  5.   


    您好, 1月份的确实没问题, 当我把dateStr换成2014-06-1, 还是显示1月的日期.
    是怎么回事?
      

  6.   


    您好, 1月份的确实没问题, 当我把dateStr换成2014-06-1, 还是显示1月的日期.
    是怎么回事?因为new SimpleDateFormat("YYYY-MM-w")里面的w表示的是一年中的第几周,而不是指定月的第几周
      

  7.   


    您好, 1月份的确实没问题, 当我把dateStr换成2014-06-1, 还是显示1月的日期.
    是怎么回事?因为new SimpleDateFormat("YYYY-MM-w")里面的w表示的是一年中的第几周,而不是指定月的第几周明白了..那怎么改成指定月的呢?
      

  8.   


    您好, 1月份的确实没问题, 当我把dateStr换成2014-06-1, 还是显示1月的日期.
    是怎么回事?因为new SimpleDateFormat("YYYY-MM-w")里面的w表示的是一年中的第几周,而不是指定月的第几周明白了..那怎么改成指定月的呢?w改为F,另外YYYY应该改为yyyy
      

  9.   


    太谢谢你了.离最后的效果只差了一步.  不知道我只输出周一和周日的日期怎么改?
    还有,for循环中的i没有在下面用到,那它是怎么输出周一到周日的日期的?求指点..cal.add(Calendar.DAY_OF_WEEK, 1);后面的1每次循环日期就会加1吧
      

  10.   


    您好, 1月份的确实没问题, 当我把dateStr换成2014-06-1, 还是显示1月的日期.
    是怎么回事?因为new SimpleDateFormat("YYYY-MM-w")里面的w表示的是一年中的第几周,而不是指定月的第几周明白了..那怎么改成指定月的呢?w改为F,另外YYYY应该改为yyyy
    w改为大写的W也行
      

  11.   


    您好, 1月份的确实没问题, 当我把dateStr换成2014-06-1, 还是显示1月的日期.
    是怎么回事?因为new SimpleDateFormat("YYYY-MM-w")里面的w表示的是一年中的第几周,而不是指定月的第几周明白了..那怎么改成指定月的呢?w改为F,另外YYYY应该改为yyyy
    w改为大写的W也行
    换成大写W时间不对了
      

  12.   

    public static void main(String[] args)throws Exception{
            String dateStr = "2014-01-2";
            //年月周----这里把y换成了小写,w换成了大写
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-W");
            Calendar cal = Calendar.getInstance();
            cal.setTime(sdf.parse(dateStr));
            //年月日
            SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd");
     
            //国际标准的周天,默认第一天就是周天
            System.out.println(sdf2.format(cal.getTime()));
     
            //中国国情的周天,只要加一个星期就可以了。
            cal.add(Calendar.DAY_OF_WEEK, 7);
            System.out.println(sdf2.format(cal.getTime()));
     
            //因为前面加了7天,所以这里减七天回到2014年1月5号,如果没有加7天,下面这行可供可省略
            cal.add(Calendar.DAY_OF_WEEK, -7);
             
            //周一
            cal.add(Calendar.DAY_OF_WEEK,1);
            System.out.println(sdf2.format(cal.getTime()));        
             
    }
      

  13.   


    您好, 1月份的确实没问题, 当我把dateStr换成2014-06-1, 还是显示1月的日期.
    是怎么回事?因为new SimpleDateFormat("YYYY-MM-w")里面的w表示的是一年中的第几周,而不是指定月的第几周明白了..那怎么改成指定月的呢?w改为F,另外YYYY应该改为yyyy
    w改为大写的W也行
    换成大写W时间不对了
    大写W显示的时间是指写月的指的周数的第一天,该天可能在上一个月里,这里只要简单加个判断就可以实现楼主的效果了