1.計算某一月份的最大天數

  Calendar time=Calendar.getInstance();

  time.clear();

  time.set(Calendar.YEAR,year);

  time.set(Calendar.MONTH,i-1);//注意,Calendar對象默認一月為0

  int day=time.getActualMaximum(Calendar.DAY_OF_MONTH);//本月份的天數

  注:在使用set方法之前,必須先clear一下,否則很多信息會繼承自系統當前時間

  2.Calendar和Date的轉化

  (1) Calendar轉化為Date

  Calendar cal=Calendar.getInstance();

  Date date=cal.getTime();

  (2) Date轉化為Calendar

  Date date=new Date();

  Calendar cal=Calendar.getInstance();

  cal.setTime(date);

  3.格式化輸出日期時間

  Date date=new Date();

  SimpleDateFormat df=new SimpleDateFormat(“yyyy-MM-dd hh:mm:ss”);

  System.out.println(df.format(date));

  4.計算一年中的第幾星期

  (1)計算某一天是一年中的第幾星期

  Calendar cal=Calendar.getInstance();

  cal.set(Calendar.YEAR, 2006);

  cal.set(Calendar.MONTH,;

  cal.set(Calendar.DAY_OF_MONTH, 3);

  int weekno=cal.get(Calendar.WEEK_OF_YEAR);

  (2)計算一年中的第幾星期是幾號

  SimpleDateFormat df=new SimpleDateFormat(“yyyy-MM-dd”);

  Calendar cal=Calendar.getInstance();

  cal.set(Calendar.YEAR, 2006);

  cal.set(Calendar.WEEK_OF_YEAR, 1);

  cal.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);

  System.out.println(df.format(cal.getTime()));

  輸出:

  2006-01-02

  5.add()和roll()的用法

  (1)add()方法

  SimpleDateFormat df=new SimpleDateFormat(“yyyy-MM-dd”);

  Calendar cal=Calendar.getInstance();

  cal.set(Calendar.YEAR, 2006);

  cal.set(Calendar.MONTH,;

  cal.set(Calendar.DAY_OF_MONTH, 3);

  cal.add(Calendar.DATE, -4);

  Date date=cal.getTime();

  System.out.println(df.format(date));

  cal.add(Calendar.DATE, 4);

  date=cal.getTime();

  System.out.println(df.format(date));

  輸出:

  2006-08-30

  2006-09-03

  (2)roll方法

  cal.set(Calendar.YEAR, 2006);

  cal.set(Calendar.MONTH,;

  cal.set(Calendar.DAY_OF_MONTH, 3);

  cal.roll(Calendar.DATE, -4);

  date=cal.getTime();

  System.out.println(df.format(date));

  cal.roll(Calendar.DATE, 4);

  date=cal.getTime();

  System.out.println(df.format(date));

  輸出:

  2006-09-29

  2006-09-03

  可見,roll()方法在本月內循環,一般使用add()方法;