2011년 6월 30일 목요일
날짜함수-2
/**
* 두날짜 사이의 일수를 리턴
* @param fromDate yyyyMMdd 형식의 시작일
* @param toDate yyyyMMdd 형식의 종료일
* @return 두날짜 사이의 일수
*/
public static int getDiffDayCount(String fromDate, String toDate) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
try {
return (int) ((sdf.parse(toDate).getTime() - sdf.parse(fromDate)
.getTime()) / 1000 / 60 / 60 / 24);
} catch (Exception e) {
return 0;
}
}
/**
* 현재 날짜에서 변경 요청한 날짜 더하거나 빼서 리턴
* @param 숫자(일수) 집어넣기
* @return yyyyMMdd 형식의 날짜가 담긴 날짜
*/
public static String previosDate(int sub){
SimpleDateFormat fmt=new SimpleDateFormat("yyyyMMdd");
java.util.Calendar c=java.util.Calendar.getInstance();
java.util.Date date=null;
try{
date=fmt.parse(fmt.format(new Date()));
c.setTime(date);
c.add(java.util.Calendar.DAY_OF_YEAR, sub);
}catch(Exception ex){
}
return fmt.format(c.getTime());
}
/**
* 현재 날짜에서 변경 요청한 월 더하거나 빼서
* @param 숫자(월수) 집어넣기
* @return yyyyMMdd 형식의 날짜가 담긴 날짜
*/
public static String previosMonth(int sub){
SimpleDateFormat fmt=new SimpleDateFormat("yyyyMMdd");
java.util.Calendar c=java.util.Calendar.getInstance();
java.util.Date date=null;
try{
date=fmt.parse(fmt.format(new Date()));
c.setTime(date);
c.add(java.util.Calendar.MONTH, sub);
}catch(Exception ex){
}
return fmt.format(c.getTime());
}
/**
* 시작/종료년이 없을 경우 2년전/올해로 셋팅한다.
* @param toDate yyyy 형식의 날짜
* '@param dateFlag 시작일 혹은 종료일 구분
* '@param dateKubun Y/M/D
* @return yyyy 형식의 날짜
*/
public static String getMakeYear(String nowDate, String dateFlag, String dateKubun) {
String resultDate = "";
//시작, 종료년이 없을 경우
if (nowDate.equals("")) {
// 2년전 가져옴
if (dateFlag.equals("S")) {
if (dateKubun.equals("Y")) {
resultDate = Integer.toString(Integer.parseInt(nowYearGet()) - 2);
} else {
resultDate = previosMonth(-11);
resultDate = resultDate.substring(0, 4);
}
} else {
resultDate = nowYearGet();
}
} else {
resultDate = nowDate;
}
return resultDate;
}
/**
* 시작/종료월이 없을 경우 11개월전/이번달로 셋팅한다.
* @param toDate yyyyMM 형식의 날짜
* '@param dateFlag 시작일 혹은 종료일 구분
* @return yyyyMM 형식의 날짜
*/
public static String getMakeMonth(String nowDate, String dateFlag) {
String resultDate = "";
//시작, 종료월이 없을 경우
if (nowDate.equals("")) {
// 11개월전 가져옴
if (dateFlag.equals("S")) {
resultDate = previosMonth(-11);
resultDate = resultDate.substring(4, 6);
} else {
resultDate = nowMonthGet();
}
} else {
resultDate = nowDate;
}
return resultDate;
}
/**
* 시작/종료일이 없을 경우 한달전/하루전으로 셋팅한다.
* @param toDate yyyyMMdd 형식의 날짜
* '@param dateFlag 시작일 혹은 종료일 구분
* @return yyyyMMdd 형식의 날짜
*/
public static String getMakeDate(String nowDate, String dateFlag) {
String resultDate = "";
//시작, 종료일이 없을 경우
if (nowDate.equals("")) {
// 한달/하루전 날짜 가져옴
if (dateFlag.equals("S")) {
resultDate = previosMonth(-1);
} else {
resultDate = previosDate(-1);
}
} else {
resultDate = nowDate;
}
return resultDate;
}
/**
* 날짜를 8자리로 만들어서 반환
* 시작일일 경우 '00' 혹은 '0000'을 붙인다.
* 종료일일 경우 '99' 혹은 '9999'을 붙인다.
* @param toDate yyyyMMdd 혹은 yyyyMM 혹은 yyyy 형식의 날짜
* '@param dateFlag 시작일 혹은 종료일 구분
* @return yyyyMMdd 혹은 yyyyMM 혹은 yyyy 형식의 날짜가 담긴 배열
*/
public static String getMakeLength(String nowDate, String dateFlag) {
String resultDate = "";
if (dateFlag.equals("S")) {
resultDate = (nowDate + "00000101").substring(0, 8);
} else {
resultDate = (nowDate + "99991231").substring(0, 8);
}
return resultDate;
}
/**
* 날짜를 규칙에 맞게 변환
* dateFlag가 'Y'일 경우 앞 두자리를 반환
* dateFlag가 'M'일 경우 중간 두자리를 반환
* dateFlag가 'D'일 경우 끝 두자리를 반환
* @param toDate yyyyMMdd 형식의 날짜
* @return yyyy 혹은 MM 혹은 dd 형식의 날짜가
*/
public static String getChangeDate(String nowDate, String dateFlag) {
String resultDate = "";
if (dateFlag.equals("Y")) {
resultDate = nowDate.substring(0,4);
} else if (dateFlag.equals("M")) {
resultDate = nowDate.substring(4,6);
} else if (dateFlag.equals("D")) {
resultDate = nowDate.substring(6,8);
}
return Integer.toString(Integer.parseInt(resultDate));
}
피드 구독하기:
댓글 (Atom)
댓글 없음:
댓글 쓰기