网上有很多计算本周第一天的代码,但是大多数都不太全面。
现在自己写了一个,进行测试:
/**
*
* @param date
* @param isMondayAsFirst 周一是否为一周第一天
* @return
*/
private static Date getFirstDateOfWeek(Date date, boolean isMondayAsFirst) {
Calendar cal = Calendar.getInstance();
cal.setTime(date);
int i = cal.getActualMinimum(Calendar.DAY_OF_WEEK);
int dayMinus = 0;
if (isMondayAsFirst) {
//将周一当做头一天
if (i > 1) {
dayMinus = i - 2;
} else { //周日作为上周的最后一天
dayMinus = 7 - i;
}
} else {
//将周日当做头一天
dayMinus = i - 1;
}
cal.add(Calendar.DAY_OF_MONTH, -1 * dayMinus);
return cal.getTime();
}