Notice
Recent Posts
Recent Comments
Link
투케이2K
240. (java/자바) Date 사용해 두 날짜 차이 계산 실시 - 초(sec), 분(min), 시간(hour), 날짜(day) 본문
Java
240. (java/자바) Date 사용해 두 날짜 차이 계산 실시 - 초(sec), 분(min), 시간(hour), 날짜(day)
투케이2K 2022. 2. 10. 19:09[개발 환경 설정]
개발 툴 : Eclipse
개발 언어 : Java
[소스 코드]
public static int getDateMinus(String bigDate, String smallDate) {
/**
* TODO [설 명]
* 1. 날짜 형식 : yyyyMMddkkmmss 24시간 형태로 구성
* 2. bigDate 큰 날짜 - smallDate 작은 날짜 연산 수행
* 3. 리턴 형식 : 초 , 분 , 시간 , 일자 단위 선택
* 4. 인풋 예시 :
* - C_Util.getDateMinus("2022 02 10 18 30 15", "2022 02 10 18 30 15"); // 동일
*
* - C_Util.getDateMinus("2022 02 10 18 30 15", "2022 02 10 18 30 10"); // 초 [다름]
* - C_Util.getDateMinus("2022 02 10 18 30 15", "2022 02 10 18 25 15"); // 분 [다름]
* - C_Util.getDateMinus("2022 02 10 18 30 15", "2022 02 10 17 30 15"); // 시간 [다름]
* - C_Util.getDateMinus("2022 02 10 18 30 15", "2022 02 09 18 30 15"); // 일자 [다름]
* - C_Util.getDateMinus("2022 02 10 18 30 15", "2022 01 10 18 30 15"); // 월 [다름]
* - C_Util.getDateMinus("2022 02 10 18 30 15", "2021 02 10 18 30 15"); // 연도 [다름]
* */
// [초기 리턴 데이터 선언]
int returnData = 0;
// [인풋으로 들어온 값에 공백이 있는 경우 제거 실시]
bigDate = bigDate.replaceAll(" ", "");
smallDate = smallDate.replaceAll(" ", "");
// [인풋으로 들어온 값 널 데이터 검증 실시]
try {
if (bigDate != null && bigDate.length()>0 && !bigDate.equals("") && !bigDate.trim().equals("null")
&& smallDate != null && smallDate.length()>0 && !smallDate.equals("") && !smallDate.trim().equals("null")){ // [정상 데이터 인 경우]
// [로직 처리 수행 실시]
Date bigFormat = new SimpleDateFormat("yyyyMMddkkmmss").parse(bigDate);
Date smallFormat = new SimpleDateFormat("yyyyMMddkkmmss").parse(smallDate);
// [초, 분, 시간, 일자 차이 계산 실시 >> long 타입]
long minusSec = (bigFormat.getTime() - smallFormat.getTime()) / 1000; // [초]
long minusMin = (bigFormat.getTime() - smallFormat.getTime()) / 60000; // [분]
long minusHour = (bigFormat.getTime() - smallFormat.getTime()) / 3600000; // [시간]
long minusDay = minusSec / (24*60*60); // [일자]
Log.i("---","---");
Log.w("//===========//","================================================");
Log.i("","\n"+"[C_Util >> getDateMinus() :: 두 날짜 차이 결과 확인]");
Log.i("","\n"+"---------------------");
Log.i("","\n"+"[bigDate [인풋 날짜_1] :: "+String.valueOf(bigDate)+"]");
Log.i("","\n"+"[smallDate [인풋 날짜_2] :: "+String.valueOf(smallDate)+"]");
Log.i("","\n"+"---------------------");
Log.i("","\n"+"[minusSec [초] 차이 :: "+String.valueOf(minusSec)+"]");
Log.i("","\n"+"---------------------");
Log.i("","\n"+"[minusMin [분] 차이 :: "+String.valueOf(minusMin)+"]");
Log.i("","\n"+"---------------------");
Log.i("","\n"+"[minusHour [시간] 차이 :: "+String.valueOf(minusHour)+"]");
Log.i("","\n"+"---------------------");
Log.i("","\n"+"[minusDay [날짜] 차이 :: "+String.valueOf(minusDay)+"]");
Log.w("//===========//","================================================");
Log.i("---","---");
// [리턴하려는 값을 선택 후 결과 반환]
returnData = (int) minusMin;
}
else { // [비정상 데이터 인 경우]
Log.i("---","---");
Log.e("//===========//","================================================");
Log.i("","\n"+"[C_Util >> getDateMinus() :: 두 날짜 차이 계산 에러]");
Log.i("","\n"+"[error [에러] :: "+"비정상 데이터"+"]");
Log.e("//===========//","================================================");
Log.i("---","---");
}
}
catch (Exception e){
Log.i("---","---");
Log.e("//===========//","================================================");
Log.i("","\n"+"[C_Util >> getDateMinus() :: 두 날짜 차이 계산 에러]");
Log.i("","\n"+"[catch [에러] :: "+String.valueOf(e.getMessage())+"]");
Log.e("//===========//","================================================");
Log.i("---","---");
}
// [리턴 데이터 반환 실시]
return returnData;
}
[결과 출력]
반응형
'Java' 카테고리의 다른 글
242. (java/자바) subList 사용해 array list 가변 배열 데이터 부분 데이터 출력 실시 (0) | 2022.03.09 |
---|---|
241. (java/자바) String join 사용해 문자열 및 배열 (array) 데이터 결합 실시 (0) | 2022.03.09 |
239. (java/자바) throws Exception 사용해 예외 상황 체크 및 try catch 구문에 예외 발생 리턴 실시 (0) | 2022.01.23 |
238. (java/자바) 퍼센트 percent 값 구하기 실시 및 소수점 자리 수 포맷 실시 (1) | 2021.10.02 |
237. (java/자바) list to hashset 변환 및 데이터 중복 제거 실시 (0) | 2021.09.08 |
Comments