import java.util.Calendar;
import java.util.Date;
public static void main(String[] args) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Calendar calendar = Calendar.getInstance();
calendar.setTime(new Date());
System.out.println("当前星期(日期):" + sdf.format(calendar.getTime()));
calendar.add(Calendar.DAY_OF_WEEK, 0);
calendar.set(Calendar.DAY_OF_WEEK, 1);
System.out.println("当前星期第一天(日期):" + sdf.format(calendar.getTime()));
calendar.add(Calendar.DAY_OF_WEEK, 1);
calendar.set(Calendar.DAY_OF_WEEK, 0);
System.out.println("当前星期最后一天(日期):" + sdf.format(calendar.getTime()));
System.out.println();
calendar.setTime(new Date());
calendar.add(Calendar.WEEK_OF_YEAR, -1);
System.out.println("上周星期(日期):" + sdf.format(calendar.getTime()));
calendar.add(Calendar.DAY_OF_WEEK, 0);
calendar.set(Calendar.DAY_OF_WEEK, 1);
System.out.println("上周星期第一天(日期):" + sdf.format(calendar.getTime()));
calendar.add(Calendar.DAY_OF_WEEK, 1);
calendar.set(Calendar.DAY_OF_WEEK, 0);
System.out.println("上周星期最后一天(日期):" + sdf.format(calendar.getTime()));
System.out.println();
calendar.setTime(new Date());
System.out.println("当前月份:" + sdf.format(calendar.getTime()));
calendar.add(Calendar.MONTH, 0);
calendar.set(Calendar.DAY_OF_MONTH, 1);
System.out.println("当前月份第一天:" + sdf.format(calendar.getTime()));
calendar.add(Calendar.MONTH, 1);
calendar.set(Calendar.DAY_OF_MONTH, 0);
System.out.println("当前月份最后一天:" + sdf.format(calendar.getTime()));
System.out.println();
calendar.setTime(new Date());
calendar.add(Calendar.MONTH, -1);
System.out.println("上月月份:" + sdf.format(calendar.getTime()));
calendar.set(Calendar.DAY_OF_MONTH, 1);
System.out.println("上月月份第一天:" + sdf.format(calendar.getTime()));
calendar.set(Calendar.DAY_OF_MONTH, calendar.getActualMaximum(Calendar.DAY_OF_MONTH));
System.out.println("上月月份最后一天:" + sdf.format(calendar.getTime()));
System.out.println();
calendar.setTime(new Date());
System.out.println("当前年份:" + sdf.format(calendar.getTime()));
calendar.add(Calendar.YEAR, 0);
calendar.set(Calendar.DAY_OF_YEAR, 1);
System.out.println("当前年份第一天:" + sdf.format(calendar.getTime()));
calendar.add(Calendar.YEAR, 1);
calendar.set(Calendar.DAY_OF_YEAR, 0);
System.out.println("当前年份最后一天:" + sdf.format(calendar.getTime()));
System.out.println();
calendar.setTime(new Date());
calendar.add(Calendar.YEAR, -1);
System.out.println("上一年份:" + sdf.format(calendar.getTime()));
calendar.set(Calendar.DAY_OF_YEAR, 1);
System.out.println("上一年份第一天:" + sdf.format(calendar.getTime()));
calendar.set(Calendar.DAY_OF_YEAR, calendar.getActualMaximum(Calendar.DAY_OF_YEAR));
System.out.println("上一年份最后一天:" + sdf.format(calendar.getTime()));
}