java.util.Calendar cal = java.util.Calendar.getInstance();
System.out.println("今天: " + cal.getTime());
//
int dayofmonth = cal.get(cal.DATE);
cal.add(cal.DATE, 1 - dayofmonth);
System.out.println("本月第一天: " + cal.getTime());
cal.add(cal.DATE, dayofmonth - 1);
//
cal.add(cal.MONTH, 1);
dayofmonth = cal.get(cal.DATE);
cal.add(cal.DATE, -dayofmonth);
System.out.println("本月最后一天: " + cal.getTime());
cal.add(cal.DATE, dayofmonth);
cal.add(cal.MONTH, -1);
//
int dayofweek = cal.get(cal.DAY_OF_WEEK) - cal.getFirstDayOfWeek();
cal.add(cal.DATE, 1 - dayofweek);
System.out.println("本周一: " + cal.getTime());
cal.add(cal.DATE, dayofweek - 1);
//
cal.add(cal.DATE, 7 - dayofweek);
System.out.println("本周日: " + cal.getTime());
cal.add(cal.DATE, dayofweek - 7);
System.out.println("今天: " + cal.getTime());
//
int dayofmonth = cal.get(cal.DATE);
cal.add(cal.DATE, 1 - dayofmonth);
System.out.println("本月第一天: " + cal.getTime());
cal.add(cal.DATE, dayofmonth - 1);
//
cal.add(cal.MONTH, 1);
dayofmonth = cal.get(cal.DATE);
cal.add(cal.DATE, -dayofmonth);
System.out.println("本月最后一天: " + cal.getTime());
cal.add(cal.DATE, dayofmonth);
cal.add(cal.MONTH, -1);
//
int dayofweek = cal.get(cal.DAY_OF_WEEK) - cal.getFirstDayOfWeek();
cal.add(cal.DATE, 1 - dayofweek);
System.out.println("本周一: " + cal.getTime());
cal.add(cal.DATE, dayofweek - 1);
//
cal.add(cal.DATE, 7 - dayofweek);
System.out.println("本周日: " + cal.getTime());
cal.add(cal.DATE, dayofweek - 7);