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(); }