上一周/当前周/下一周,周一的日期
/**
* 上一周,周一日期
* @param date
* @return
*/
public static Date geLastWeekMonday(Date date) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(getCurrentWeekMonday(date));
calendar.add(Calendar.DATE, -7);
return calendar.getTime();
}
/**
* 当前周,周一日期(0点0分0秒)
* @param date
* @return
*/
public static Date getCurrentWeekMonday(Date date) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
int dayWeek = calendar.get(Calendar.DAY_OF_WEEK);
calendar.set(Calendar.HOUR_OF_DAY, 0);
calendar.set(Calendar.MINUTE, 0);
calendar.set(Calendar.SECOND, 0);
calendar.set(Calendar.MILLISECOND, 0);
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);
return calendar.getTime();
}
public static Date getCurrentWeekMonday() {
return getCurrentWeekMonday(new Date());
}
/**
* 下一周周一日期
* @param date
* @return
*/
public static Date getNextWeekMonday(Date date) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(getCurrentWeekMonday(date));
calendar.add(Calendar.DATE, 7);
return calendar.getTime();
}
测试
public static void main(String[] args) {
System.out.println(new Date());
System.out.println(geLastWeekMonday(new Date()));
System.out.println(getCurrentWeekMonday(new Date()));
System.out.println(getNextWeekMonday(new Date()));
}
Wed Mar 23 16:57:10 CST 2022
Mon Mar 14 00:00:00 CST 2022
Mon Mar 21 00:00:00 CST 2022
Mon Mar 28 00:00:00 CST 2022