private Date getDateByType(Date date, Integer type) { Calendar calendar = Calendar.getInstance(); calendar.setTime(date); switch (type) { case 1:/* 日報 */ // 明天的日期 calendar.add(Calendar.DATE, 1); break; case 2:/* 周報 */ // 獲得當前日期是一個星期的第幾天 int dayWeek = calendar.get(Calendar.DAY_OF_WEEK); if (1 == dayWeek) { calendar.add(Calendar.DAY_OF_MONTH, -1); } // 設置一個星期的第一天,按中國的習慣一個星期的第一天是星期一 calendar.setFirstDayOfWeek(Calendar.MONDAY); // 獲得當前日期是一個星期的第幾天 int day = calendar.get(Calendar.DAY_OF_WEEK); int first = calendar.getFirstDayOfWeek(); // 計算周五的日期 calendar.add(Calendar.DAY_OF_WEEK, first - day + 4); break; case 3:/* 月報 */ // 獲取本月的最大天數 int days = calendar.getActualMaximum(Calendar.DAY_OF_MONTH); // 設置創造新日期,這個日期是本月的最后一天 calendar.set(Calendar.DATE, days); break; default: break; } return calendar.getTime(); }