package com.wms;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
public class Test {
public static void main(String[] args) {
final SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
//获取上周周一
String lastWeek1Str = getLastWeekMonday(format.format(new Date()));
System.out.println(lastWeek1Str);
//获取上上周周一
String lastLastWeek1Str = getLastWeekMonday(lastWeek1Str);
System.out.println(lastLastWeek1Str);
//获取上上上周周一
String lastLastLastWeek1Str = getLastWeekMonday(lastLastWeek1Str);
System.out.println(lastLastLastWeek1Str);
//获取上上上上周周一
String lastLastLastLastWeek1Str = getLastWeekMonday(lastLastLastWeek1Str);
System.out.println(lastLastLastLastWeek1Str);
}
/**
* 根据传入时间 获取上周一时间
*
* @param time
* @return
*/
public static String getLastWeekMonday(String time) {
SimpleDateFormat foramt = new SimpleDateFormat("yyyy-MM-dd");
Date date = null;
try {
date = foramt.parse(time);
} catch (ParseException e) {
e.printStackTrace();
}
Calendar cal = Calendar.getInstance();
cal.setTime(date);
//判断当前日期是否为周末,因为周末是本周第一天,如果不向后推迟一天的到的将是下周一的零点,而不是本周周一零点
if (1 == cal.get(Calendar.DAY_OF_WEEK)) {
cal.add(Calendar.DATE, -1);
}
//时间减去7天
cal.add(Calendar.DAY_OF_MONTH, -7);
//Calendar.MONDAY 这个是周一的意思 想获取周几就更换这个
cal.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
return foramt.format(cal.getTime()) + " 00:00:00";
}
}
当前时间:
获取近四周的周一: