[JAVA] 기준년월의 전월 구하는 기능, 현재 년월의 전월, 마지막 날짜 구하는 기능
지금 회사에는 쓰는 ERP시스템을 좀더 편하게 보기위해서 MIS비스무레한 걸 만들다가 하도 오랜만에 날짜관련된걸
만드려니 한참 해매게 된..ㅜ Calendar API는 정말 편리하긴 하지만 사용법을 잘 모르면 API 뒤지느라 좀 짜증나기도 하네요.
역시 반복학습과 경험이 중요한것 같습니다.
사용법 :
- 첫번째 예제 : 파라미터로 기준 날짜(ex)201304, 가감할 숫자를 넘깁니다.
- 두번째 예제 : 파라미터로 가감할 숫자를 넘깁니다.
- 세번째 예제 : 파라미터로 기준 날짜(ex)201304를 넘깁니다.
//파라미터의 해당하는 년월의 전달을 구한다.
public String getBeforeYearMonthByYM(String yearMonth, int minVal){
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMM");
Calendar cal = Calendar.getInstance();
int year = Integer.parseInt(yearMonth.substring(0,4));
int month = Integer.parseInt(yearMonth.substring(4,6));
cal.set(year, month-minVal, 0);
String beforeYear = dateFormat.format(cal.getTime()).substring(0,4);
String beforeMonth = dateFormat.format(cal.getTime()).substring(4,6);
String retStr = beforeYear + beforeMonth;
System.out.println("retStr : " + retStr);
return retStr;
}
//현재 년월의 전달을 구한다.
//param : minVal - ex)0,1,2,.....
public String getBeforeYearMonthByYM(int minVal){
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMM");
Calendar cal = Calendar.getInstance();
cal.add(cal.MONTH, -minVal);
String beforeYear = dateFormat.format(cal.getTime()).substring(0,4);
String beforeMonth = dateFormat.format(cal.getTime()).substring(4,6);
String retStr = beforeYear + beforeMonth;
System.out.println("retStr : " + retStr);
return retStr;
}
//해당년월의 마지막 날짜를 구한다.
public String getLastDayOfMonth(String yearMonth){
String year = yearMonth.substring(0,4);
String month = yearMonth.substring(4,6);
int _year = Integer.parseInt(year);
int _month = Integer.parseInt(month);
Calendar calendar = Calendar.getInstance();
calendar.set(_year, (_month-1), 1); //월은 0부터 시작
String lastDay = String.valueOf(calendar.getActualMaximum(Calendar.DATE));
System.out.println("lastDay of present month : " + lastDay);
return lastDay;
}