public class CalendarUtil implements Serializable { /** */ private static final long serialVersionUID = 3491231220111885316L; // 獲得當前日期 public static String getDate() { Calendar cal = Calendar.getInstance(); return getDate(cal); } // 獲得日期 private static String getDate(Calendar cal) { String v_strDate = ""; SimpleDateFormat formatter = new SimpleDateFormat("yyyyMMdd"); v_strDate = formatter.format(cal.getTime()); return v_strDate; } // 獲得本週X的日期 public static String getThisMondayDate(int dayOfWeek) { Calendar cal = Calendar.getInstance(); cal.setFirstDayOfWeek(Calendar.MONDAY); int mondayPlus = getDayOfWeek(dayOfWeek); cal.set(Calendar.DAY_OF_WEEK, mondayPlus); return getDate(cal); } // 獲得下週X的日期 public static String getNextMondayDate(int dayOfWeek) { Calendar cal = Calendar.getInstance(); cal.setFirstDayOfWeek(Calendar.MONDAY); int mondayPlus = getDayOfWeek(dayOfWeek); cal.set(Calendar.DAY_OF_WEEK, mondayPlus); cal.add(Calendar.DATE, 7); return getDate(cal); } /** * 獲得本月X號的日期 * * @param day * @return */ public static String getCurrentMonthBeginDate(String day) { Calendar cal = Calendar.getInstance(); if ("LASTDAY".equals(day)) { cal.set(Calendar.DAY_OF_MONTH, cal.getActualMaximum(Calendar.DATE)); } else { cal.set(Calendar.DAY_OF_MONTH, Integer.parseInt(day)); } return getDate(cal); } /** * 獲得當前日期 * * @param day * @return */ public static String getCurrentDate() { Calendar cal = Calendar.getInstance(); return getDate(cal); } /** * 獲取星期 * * @param day * @return */ public static int getDayOfWeek(int day) { int dayofweek = 0; switch (day) { case 1: dayofweek = Calendar.MONDAY; break; case 2: dayofweek = Calendar.TUESDAY; break; case 3: dayofweek = Calendar.WEDNESDAY; break; case 4: dayofweek = Calendar.THURSDAY; break; case 5: dayofweek = Calendar.FRIDAY; break; case 6: dayofweek = Calendar.SATURDAY; break; case 7: dayofweek = Calendar.SUNDAY; break; } return dayofweek; } /** * 獲得下個月X號的日期 * * @param day * @return */ public static String getNextMonthBeginDate(String day) { Calendar cal = Calendar.getInstance(); if ("LASTDAY".equals(day)) { cal.set(Calendar.MONTH, cal.get(Calendar.MONTH) + 1); cal.set(Calendar.DAY_OF_MONTH, cal.getActualMaximum(Calendar.DATE)); } else { cal.set(Calendar.MONTH, cal.get(Calendar.MONTH) + 1); cal.set(Calendar.DAY_OF_MONTH, Integer.parseInt(day)); } return getDate(cal); } public static void main(String[] args) { // System.out.println(getCurrentMonthBeginDate("LASTDAY")); // System.out.println(getThisMondayDate(5)); // System.out.println(getNextMondayDate(5)); System.out.println(getCurrentDate()); } }