本帖最后由 shf156184620 于 2009-12-19 10:12:45 编辑

解决方案 »

  1.   


    public static void main(String[] args) {
    System.out.println(getDateByWeek(2009,1,"start"));
    }

    public static String getDateByWeek(int year, int week,String type){
    int offset = 0;
    if("end".equals(type))  offset=6;
    Calendar c= Calendar.getInstance();
    c.set(Calendar.YEAR, year);
    c.set(Calendar.WEEK_OF_YEAR, week);
    c.add(Calendar.DAY_OF_YEAR, offset);
    return c.get(Calendar.YEAR)+"-"+(c.get(Calendar.MONTH)+1)+"-"+c.get(Calendar.DAY_OF_MONTH);
    }
      

  2.   


    import java.text.SimpleDateFormat;
    import java.util.Calendar;
    import java.util.Date;
    import java.util.GregorianCalendar;public class DateTest { /**
     * @param args
     */
    static Calendar cal=new GregorianCalendar();
    public static String getStartDateByWeek(int year, int week){
    cal.set(Calendar.YEAR, year);
    cal.set(Calendar.WEEK_OF_YEAR, week);
    cal.set(Calendar.DAY_OF_WEEK, 1);
    Date result=cal.getTime();
    if(result.getTime()<new GregorianCalendar(2009,0,1).getTimeInMillis())
    return new SimpleDateFormat("yyyy-MM-dd").format(new GregorianCalendar(2009,0,1).getTime());
    return new SimpleDateFormat("yyyy-MM-dd").format(result);
    }

    public static String getEndDateByWeek(int year, int week){
    cal.set(Calendar.YEAR, year);
    cal.set(Calendar.WEEK_OF_YEAR, week);
    cal.set(Calendar.DAY_OF_WEEK, 7);
    Date result=cal.getTime();
    if(result.getTime()>new GregorianCalendar(2009,12,31).getTimeInMillis())
    return new SimpleDateFormat("yyyy-MM-dd").format(new GregorianCalendar(2009,11,31).getTime());
    return new SimpleDateFormat("yyyy-MM-dd").format(result);
    }
    public static void main(String[] args) {
    // TODO Auto-generated method stub
    System.out.println(getStartDateByWeek(2009,1));
    System.out.println(getEndDateByWeek(2009,1));
    }}
    结果:2009-01-01
    2009-01-03多查一下API,多测试几次就可以了
      

  3.   

    }
    public String getStartDateByWeek(int year, int week){
    Calendar c=Calendar.getInstance();
    c.set(Calendar.YEAR,year);
    c.set(Calendar.WEEK_OF_YEAR,week);
    SimpleDateFormat s=new SimpleDateFormat("yyyy-MM-dd");

        String starTime=s.format(c.getTime());
        return starTime;

    }
    public String getEndDateByWeek(int year, int week){
    Calendar c=Calendar.getInstance();
    c.set(Calendar.YEAR,year);
    c.set(Calendar.WEEK_OF_YEAR,week);
    SimpleDateFormat s=new SimpleDateFormat("yyyy-MM-dd");
    c.add(Calendar.DAY_OF_MONTH,6);

        String endTime=s.format(c.getTime());
        return endTime;
    }
    新年刚开始那天所在星期的周六为新年第一周的开始时间,以后一次加7为第几周的开始时间,不知道这个会不会影响到你的应用