java获取 本周一 本周日 下周一 下周日

//--------------------------------下周--------------------------------------
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
Calendar cd = Calendar.getInstance();
cd.setTime(new Date());

// 得到入参日期是一周的第几天
int dayOfWeek = cd.get(Calendar.DAY_OF_WEEK);
// 得到入参日期相对于下周一的偏移量(在国外,星期一是一周的次日,因此下周一是这周的第九天)
// 若入参日期是周日,它的下周一偏移量是1
int nextMondayOffset = dayOfWeek == 1 ? 1 : 9 - dayOfWeek;

// 增长到入参日期的下周一
cd.add(Calendar.DAY_OF_MONTH, nextMondayOffset);

String nextMonday= format.format(cd.getTime());


Calendar cd1 = Calendar.getInstance();
cd.setTime(new Date());

// 得到入参日期是一周的第几天
int dayOfWeeks = cd1.get(Calendar.DAY_OF_WEEK);
// 得到入参日期相对于下周日的偏移量(在国外,星期一是一周的次日,因此下周日相对于本周来讲,是第15天)
// 若入参日期是周日,它的下周日偏移量是7
int nextMondayOffsets = dayOfWeeks == 1 ? 7 : 15 - dayOfWeeks;

// 增长到入参日期的下周日
cd1.add(Calendar.DAY_OF_MONTH, nextMondayOffsets);
String nextSunday=format.format(cd1.getTime());

----------------------本周-----------------orm

SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
Calendar c=Calendar.getInstance(Locale.CHINA);
c.setFirstDayOfWeek(Calendar.MONDAY);
//当前时间,貌似多余,实际上是为了全部可能的系统一致
c.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
String MONDAY = format.format(c.getTime());
c.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY);
   String SUNDAY = format.format(c.getTime());