private static final SimpleDateFormat FORMAT_DATE = new SimpleDateFormat(
ConfigHomeHelper.getValueByConfig("format.date"));
/**
* 计算某年某周的开始日期
*
* @param yearNum
* 格式 yyyy
* @param weekNum
* 1到52或者53
* @return 日期,格式为yyyy-MM-dd
*/
public static String getYearWeekFirstDay(int yearNo, int weekNo) {
Calendar cal = Calendar.getInstance();
cal.setFirstDayOfWeek(Calendar.SUNDAY); // 设置每周的第一天为星期一
cal.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY);// 每周从周一开始
// 上面两句代码配合,才能实现,每年度的第一个周,是包含第一个星期一的那个周。
cal.setMinimalDaysInFirstWeek(7); // 设置每周最少为7天
cal.set(Calendar.YEAR, yearNo);
cal.set(Calendar.WEEK_OF_YEAR, weekNo);
// 分别取得当前日期的年、月、日
return FORMAT_DATE.format(cal.getTime());
}
/**
* 计算某年某周的结束日期
*
* @param yearNum
* 格式 yyyy
* @param weekNum
* 1到52或者53
* @return 日期,格式为yyyy-MM-dd
*/
public static String getYearWeekEndDay(int yearNo, int weekNo) {
Calendar cal = Calendar.getInstance();
cal.setFirstDayOfWeek(Calendar.SUNDAY); // 设置每周的第一天为星期一
cal.set(Calendar.DAY_OF_WEEK,Calendar.SATURDAY);// 每周从周一开始
// 上面两句代码配合,才能实现,每年度的第一个周,是包含第一个星期一的那个周。
cal.setMinimalDaysInFirstWeek(7); // 设置每周最少为7天
cal.set(Calendar.YEAR, yearNo);
cal.set(Calendar.WEEK_OF_YEAR, weekNo);
return FORMAT_DATE.format(cal.getTime());
}