java中怎么根据年月周算这周得日期
比如说 2006.05.09号是属于第19周得
第19周得日期起始为20060507-20060514号 怎么得到20060507呢?
请高手赐教,详细一点得。运行可以立马放分。

解决方案 »

  1.   

    Calendar cal = Calendar.getInstance();
    cal.set(2006,4,9);//2006-05-09
    cal.set(Calendar.DAY_OF_WEEK,1);
    System.out.println(cal.get(Calendar.YEAR)+"-"+(cal.get(Calendar.MONTH)+1)+"-"+cal.get(Calendar.DATE));
    cal.set(Calendar.WEEK_OF_YEAR,cal.get(Calendar.WEEK_OF_YEAR)+1);
    cal.set(Calendar.DAY_OF_WEEK,1);
    System.out.println(cal.get(Calendar.YEAR)+"-"+(cal.get(Calendar.MONTH)+1)+"-"+cal.get(Calendar.DATE));
      

  2.   

    楼上的每周变8天拉,下面的才对
    Calendar cal = Calendar.getInstance();
    cal.set(2006,4,9);//2006-05-09
    cal.set(Calendar.DAY_OF_WEEK,1);
    System.out.println(cal.get(Calendar.YEAR)+"-"+(cal.get(Calendar.MONTH)+1)+"-"+cal.get(Calendar.DATE));
    cal.set(Calendar.DAY_OF_WEEK,7);
    System.out.println(cal.get(Calendar.YEAR)+"-"+(cal.get(Calendar.MONTH)+1)+"-"+cal.get(Calendar.DATE));
      

  3.   

    //每周的第一天从周日算器
    Calendar cal = Calendar.getInstance();
    cal.set(2006,4,9);//2006-05-09
    cal.set(Calendar.DAY_OF_WEEK,1);
    System.out.println("第一天:" + cal.get(Calendar.YEAR)+"-"+(cal.get(Calendar.MONTH)+1)+"-"+cal.get(Calendar.DATE));
    cal.set(Calendar.DAY_OF_WEEK,7);
    System.out.println("第七天:" + cal.get(Calendar.YEAR)+"-"+(cal.get(Calendar.MONTH)+1)+"-"+cal.get(Calendar.DATE));
    将上述代码放置在main方法中间,运行即可得到你要求的
      

  4.   

    给你几个很好用的方法:
    public class ManageWeek {
     //判断两个日期是否在同一周
     boolean isSameWeekDates(Date date1, Date date2) {
      Calendar cal1 = Calendar.getInstance();
      Calendar cal2 = Calendar.getInstance();
      cal1.setTime(date1);
      cal2.setTime(date2);
      int subYear = cal1.get(Calendar.YEAR) - cal2.get(Calendar.YEAR);
      if (0 == subYear) {
        if (cal1.get(Calendar.WEEK_OF_YEAR) == cal2.get(Calendar.WEEK_OF_YEAR))
       return true;
      }
      else if (1 == subYear && 11 == cal2.get(Calendar.MONTH)) {
        // 如果12月的最后一周横跨来年第一周的话则最后一周即算做来年的第一周
        if (cal1.get(Calendar.WEEK_OF_YEAR) == cal2.get(Calendar.WEEK_OF_YEAR))
       return true;
      }
      else if (-1 == subYear && 11 == cal1.get(Calendar.MONTH)) {
        if (cal1.get(Calendar.WEEK_OF_YEAR) == cal2.get(Calendar.WEEK_OF_YEAR))
       return true;
      }
      return false;
     }
     
     
     //产生周序列
     public static String  getSeqWeek(){
      Calendar c = Calendar.getInstance(Locale.CHINA);
      String week = Integer.toString(c.get(Calendar.WEEK_OF_YEAR));
      if(week.length()==1)week = "0" + week;
      String year = Integer.toString(c.get(Calendar.YEAR));  
      return year+week;
      
     }
      
      //获得周一的日期
      public static String getMonday(Date date){
       Calendar c = Calendar.getInstance();
       c.setTime(date);
       c.set(Calendar.DAY_OF_WEEK,Calendar.MONDAY);
       return new SimpleDateFormat("yyyy-MM-dd").format(c.getTime());
      }
      
      
      //获得周五的日期
      public static String getFriday(Date date){
       Calendar c = Calendar.getInstance();
       c.setTime(date);
       c.set(Calendar.DAY_OF_WEEK,Calendar.FRIDAY);   
       return new SimpleDateFormat("yyyy-MM-dd").format(c.getTime());  
      }//当前日期前几天或者后几天的日期 public static String afterNDay(int n){
            Calendar c=Calendar.getInstance();
            DateFormat df=new SimpleDateFormat("yyyy-MM-dd");
            c.setTime(new Date());
            c.add(Calendar.DATE,n);
            Date d2=c.getTime();
            String s=df.format(d2);
            return s;
        }
      

  5.   

    这几个方法就是你要的:  //产生周序列 //获得周一的日期 //获得周五的日期 //产生周序列
     public static String  getSeqWeek(){
      Calendar c = Calendar.getInstance(Locale.CHINA);
      String week = Integer.toString(c.get(Calendar.WEEK_OF_YEAR));
      if(week.length()==1)week = "0" + week;
      String year = Integer.toString(c.get(Calendar.YEAR));  
      return year+week;
      
     }
      
      //获得周一的日期
      public static String getMonday(Date date){
       Calendar c = Calendar.getInstance();
       c.setTime(date);
       c.set(Calendar.DAY_OF_WEEK,Calendar.MONDAY);
       return new SimpleDateFormat("yyyy-MM-dd").format(c.getTime());
      }
      
      
      //获得周五的日期
      public static String getFriday(Date date){
       Calendar c = Calendar.getInstance();
       c.setTime(date);
       c.set(Calendar.DAY_OF_WEEK,Calendar.FRIDAY);   
       return new SimpleDateFormat("yyyy-MM-dd").format(c.getTime());  
      }