/** * 獲取當前日期所在的周一到周日的所有日期集合 * @return */ public static List<Date> getWeekDateList() { Calendar cal = Calendar.getInstance(); // 設置一個星期的第一天,按中國的習慣一個星期的第一天是星期一 cal.setFirstDayOfWeek(Calendar.MONDAY); // 獲得當前日期是一個星期的第幾天 int dayWeek = cal.get(Calendar.DAY_OF_WEEK); if(dayWeek==1){ dayWeek = 8; } // 根據日歷的規則,給當前日期減去星期幾與一個星期第一天的差值 cal.add(Calendar.DATE, cal.getFirstDayOfWeek() - dayWeek); Date mondayDate = cal.getTime(); cal.add(Calendar.DATE, 4 +cal.getFirstDayOfWeek()); Date sundayDate = cal.getTime(); List lDate = new ArrayList(); lDate.add(mondayDate); Calendar calBegin = Calendar.getInstance(); // 使用給定的 Date 設置此 Calendar 的時間 calBegin.setTime(mondayDate); Calendar calEnd = Calendar.getInstance(); // 使用給定的 Date 設置此 Calendar 的時間 calEnd.setTime(sundayDate); //測試此日期是否在指定日期之后 while (sundayDate.after(calBegin.getTime())) { // 根據日歷的規則,為給定的日歷字段添加或減去指定的時間量 calBegin.add(Calendar.DAY_OF_MONTH, 1); lDate.add(calBegin.getTime()); } return lDate;
}