下周一
/**
* 获得 下周一 的日期
*
* @param date 日期
* @return {@link Date}
*/
public static Date getNextWeek1(Date date) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
// 获得当前日期是一个星期的第几天
int dayWeek = calendar.get(Calendar.DAY_OF_WEEK);
if (1 == dayWeek) {
calendar.add(Calendar.DAY_OF_MONTH, -1);
}
// 设置一个星期的第一天,按中国的习惯一个星期的第一天是星期一
calendar.setFirstDayOfWeek(Calendar.MONDAY);
// 获得当前日期是一个星期的第几天
int day = calendar.get(Calendar.DAY_OF_WEEK);
// 根据日历的规则,给当前日期减去星期几与一个星期第一天的差值
calendar.add(Calendar.DATE, calendar.getFirstDayOfWeek() - day);
calendar.setTime(calendar.getTime());
calendar.add(Calendar.DATE, 7);
return calendar.getTime();
}
下周天
/**
* 获得 下周天 的日期
*
* @param date 日期
* @return {@link Date}
*/
public static Date getNextWeek7(Date date) {
// 将java.util.Date转换为java.time.LocalDate
LocalDate localDate = date.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
// 1为周一 以此类推 7为周日。
LocalDate localDate1 = localDate.with(TemporalAdjusters.next(DayOfWeek.of(7)));
// LocalDate 转 Date
ZoneId zoneId = ZoneId.systemDefault();
Date date2 = Date.from(localDate1.atStartOfDay().atZone(zoneId).toInstant());
Calendar calendar = Calendar.getInstance();
calendar.setTime(date2);
return calendar.getTime();
}