以当前日期为标准,如何取n周前的日期?

解决方案 »

  1.   

        public static void main(String[] args) {
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
            Date dt = prevWeek(new Date(), 2);
            System.out.println(sdf.format(dt));
        }    public static Date prevWeek(Date dt, int week) {
            Calendar cal = Calendar.getInstance();
            cal.setTime(dt);
            cal.add(Calendar.DAY_OF_MONTH, -week * 7);
            return cal.getTime();
        }
      

  2.   


                    //划分为区间段
    SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd");
    String str = "2010-11-27";
    Date date1 = sf.parse(str);
    Calendar cal1 = Calendar.getInstance();
    cal1.setTime(date1);
    int endDay = cal1.getActualMaximum(Calendar.DAY_OF_YEAR);
    cal1.set(cal1.get(cal1.YEAR), cal1.get(cal1.MONTH), cal1
    .getActualMinimum(Calendar.DAY_OF_MONTH));
    for (int startDay = 1; startDay <= endDay; startDay++) {
    if (5 == cal1.get(Calendar.DAY_OF_WEEK)) {
    System.out.println(sf.format(cal1.getTime()));
    }
    cal1.add(cal1.DAY_OF_MONTH, 1);
    }
      

  3.   

    2楼的cal.setTime(dt);这句可以不用