还有就是知道一个日期,怎么计算出这个日期 所在的这个月 开始日期 和结束日期?比如 2012-02-18  那计算他所在的周的结果就是2012-02-13开始 2012-02-19结束  
计算所在月就是 2012-02-1     2012-02-29结束

解决方案 »

  1.   


    public static void getTime(Date date) {
    if(date == null) date=new Date();
    Calendar calendar=Calendar.getInstance();
    calendar.setTime(date);
    int dow=calendar.get(Calendar.DAY_OF_WEEK);
    if(dow==7) dow=0;
    SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
    //本周最小日期
    calendar.add(Calendar.DAY_OF_YEAR, -dow);
    String strDate=sdf.format(calendar.getTime());
    System.out.println(strDate);

    // 本周最大日期
    calendar.add(Calendar.DAY_OF_YEAR, 6);
    strDate=sdf.format(calendar.getTime());
    System.out.println(strDate);
    }
      

  2.   

    public class Test { /**
     * @param args
     */
    public static void main(String[] args) {

    SimpleDateFormat form = new SimpleDateFormat("yyyy-MM-dd");
    Calendar ca = Calendar.getInstance();
    Date today = new Date();
    String todayConvert = form.format(today);
    ca.set(Calendar.YEAR, Integer.parseInt(todayConvert.substring(0, 4)));
    ca.set(Calendar.MONTH, Integer.parseInt(todayConvert.substring(5, 7)));
    ca.set(Calendar.DAY_OF_MONTH, 0);
    System.out.println("The last day of month:" + form.format(ca.getTime()));
    }結果:The last day of month:2012-02-29
      

  3.   

    public static void main(String[] args) throws ParseException {

    String str = "2012-02-18";
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
    Date date = sdf.parse(str);
    Calendar cal = Calendar.getInstance();
    cal.setTime(date);

    cal.set(Calendar.DAY_OF_WEEK, 1);
    System.out.println("本周开始日期:"+sdf.format(cal.getTime()));

    cal.set(Calendar.DAY_OF_WEEK, 7);
    System.out.println("本周结束日期:"+sdf.format(cal.getTime()));

    cal.set(Calendar.DAY_OF_MONTH, 1);
    System.out.println("本月开始日期:"+sdf.format(cal.getTime()));

    int daysInMonth = cal.getActualMaximum(Calendar.DAY_OF_MONTH);
    cal.set(Calendar.DAY_OF_MONTH, daysInMonth);
    System.out.println("本月结束日期:"+sdf.format(cal.getTime()));


    }