/**
* @author zhangjx
* @date 2019/8/28 17:07
*/
public class DateUtil {
private final static SimpleDateFormat SDF = new SimpleDateFormat(
"yyyyMMdd");
/**
* 最近1周獲取起止日期
*
* @param date 需要參照的日期
* @param option 0 開始日期;1 結束日期
* @param k 0 包含本週 1 不包含本週
* @return String
*/
private static String getFromToDate(Date date, int option, int k) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
int dayOfWeek = calendar.get(Calendar.DAY_OF_WEEK) - 1;
//判斷是否爲星期天,外國定義星期天是他們的第一天
if (dayOfWeek <= 0) {
dayOfWeek = 7;
}
int offset = 0 == option ? 1 - dayOfWeek : 7 - dayOfWeek;
int amount = 0 == option ? offset - k * 7 : offset - k * 7;
calendar.add(Calendar.DATE, amount);
String format = null;
try {
format = SDF.format(calendar.getTime());
} catch (Exception e) {
e.printStackTrace();
}
return format;
}
/**
* 根據當前日期獲得本週的日期區間(本週週一和週日日期)
*
* @return String
*/
public static String getThisWeekTimeInterval() {
String beginDate = getFromToDate(new Date(), 0, 0);
String endDate = getFromToDate(new Date(), 1, 0);
return beginDate + "-" + endDate;
}
/**
* 根據當前日期獲得上週的日期區間(上週週一和週日日期)
*
* @return String
*/
public static String getLastWeekTimeInterval() {
String beginDate = getFromToDate(new Date(), 0, 1);
String endDate = getFromToDate(new Date(), 1, 1);
return beginDate + "-" + endDate;
}
public static void main(String[] args){
System.out.println(getThisWeekTimeInterval());
}
}
運行結果: