Notice
Recent Posts
Recent Comments
Link
투케이2K
549. (kotlin/코틀린) [유틸 파일] getDateCalTimeStamp : 현재 날짜 및 시간에서 특정 시간 더하기 및 빼기 수행 한 타임스탬프 값 반환 본문
Kotlin
549. (kotlin/코틀린) [유틸 파일] getDateCalTimeStamp : 현재 날짜 및 시간에서 특정 시간 더하기 및 빼기 수행 한 타임스탬프 값 반환
투케이2K 2025. 4. 4. 19:15[개발 환경 설정]
개발 툴 : AndroidStudio
개발 언어 : Kotlin

[소스 코드]
// --------------------------------------------------------------------------------------
[개발 및 테스트 환경]
// --------------------------------------------------------------------------------------
- 언어 : Java / Kotlin
- 개발 툴 : AndroidStudio
- 기술 구분 : 유틸 파일 / getDateCalTimeStamp
// --------------------------------------------------------------------------------------
// --------------------------------------------------------------------------------------
[소스 코드]
// --------------------------------------------------------------------------------------
fun getDateCalTimeStamp(yyyy: String, MM: String, dd: String, HH: String, mm: String, ss: String): Array<String> {
/**
* // -----------------------------------------
* [getDateCalTimeStamp 메소드 설명]
* // -----------------------------------------
* 1. 현재 날짜 및 시간에서 특정 시간 더하기 및 빼기 수행 한 타임 스탬프 값 반환 수행
* // -----------------------------------------
* 2. 호출 방식 :
*
* C_Util.getDateCalTimeStamp("5", "", "", "", "", "") // [연]
* C_Util.getDateCalTimeStamp("", "5", "", "", "", "") // [월]
* C_Util.getDateCalTimeStamp("", "", "5", "", "", "") // [일]
* C_Util.getDateCalTimeStamp("", "", "", "5", "", "") // [시]
* C_Util.getDateCalTimeStamp("", "", "", "", "5", "") // [분]
* C_Util.getDateCalTimeStamp("", "", "", "", "", "5") // [초]
* // -----------------------------------------
* 3. 리턴 데이터 :
*
* 현재 날짜 및 시간 값 / 타임 스탬프 13 자리 : 배열 0 번지, 배열 1 번지
*
* 계산 날짜 및 시간 값 / 타임 스탬프 13 자리 : 배열 2 번지, 배열 3 번지
*
* 예시 : 5초 이전 : [2025-04-04 09:58:17, 1743728297169, 2025-04-04 09:58:12, 1743728292169]
* // -----------------------------------------
*/
// [리턴 변수 선언]
val returnData = Array<String>(4, {""})
var M_LOG = ""
// [로직 처리 실시]
try {
// [현재 날짜 및 시간 구하기]
val time = System.currentTimeMillis()
val dayTime = SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.KOREA)
val nowDate = Date(time)
val nowDateString = dayTime.format(nowDate)
// [Calendar 인스턴스 생성]
val cal = Calendar.getInstance()
cal.time = nowDate // [지금 시간 지정]
// TODO [배열에 현재 날짜 및 시간 값 저장]
returnData[0] = nowDateString.toString()
returnData[1] = Timestamp(cal.timeInMillis).time.toString()
// [인풋 값에 따라서 현재 및 날짜 시간 더하기, 빼기]
if (stringIsNumber(yyyy) == true) { // [연] : [모두 문자 구성]
cal.add(Calendar.YEAR, yyyy.toInt())
}
if (stringIsNumber(MM) == true) { // [월] : [모두 문자 구성]
cal.add(Calendar.MONTH, MM.toInt())
}
if (stringIsNumber(dd) == true) { // [일] : [모두 문자 구성]
cal.add(Calendar.DATE, dd.toInt())
}
if (stringIsNumber(HH) == true) { // [시] : [모두 문자 구성]
cal.add(Calendar.HOUR, HH.toInt())
}
if (stringIsNumber(mm) == true) { // [분] : [모두 문자 구성]
cal.add(Calendar.MINUTE, mm.toInt())
}
if (stringIsNumber(ss) == true) { // [초] : [모두 문자 구성]
cal.add(Calendar.SECOND, ss.toInt())
}
val newFormat = SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.KOREA)
val newDateString = newFormat.format(cal.time)
// TODO [배열에 계산 한 날짜 및 시간 값 저장]
returnData[2] = newDateString.toString()
returnData[3] = Timestamp(cal.timeInMillis).time.toString()
M_LOG = "Success Date Cal : $nowDateString / $newDateString"
} catch (e: Exception) {
S_Log._printStackTrace_(null, S_FinalData.LOG_BUG_STATE, null, e)
M_LOG = "Exception : " + e.message.toString()
}
// [로그 출력 실시]
//*
// ===============================================================
S_Log._D_("현재 날짜 및 시간에서 특정 시간 더하기 및 빼기 수행 한 타임스탬프 값 반환 수행", arrayOf(
"INPUT [yyyy] :: $yyyy",
"INPUT [MM] :: $MM",
"INPUT [dd] :: $dd",
"INPUT [HH] :: $HH",
"INPUT [mm] :: $mm",
"INPUT [ss] :: $ss",
"M_LOG :: $M_LOG",
"RETURN :: " + returnData.contentToString().toString()
))
// ===============================================================
// */
// [리턴 반환 실시]
return returnData
}
// --------------------------------------------------------------------------------------
// --------------------------------------------------------------------------------------
[결과 출력]
// --------------------------------------------------------------------------------------
D///===========//: ================================================
I/: [LOG :: CLASS PLACE :: C_Util.getDateCalTimeStamp]
I/: ----------------------------------------------------
I/: [LOG :: DESCRIPTION :: 현재 날짜 및 시간에서 특정 시간 더하기 및 빼기 수행 한 타임스탬프 값 반환 수행]
I/: ----------------------------------------------------
I/: [LOG :: INPUT [yyyy] :: ]
I/: ----------------------------------------------------
I/: [LOG :: INPUT [MM] :: ]
I/: ----------------------------------------------------
I/: [LOG :: INPUT [dd] :: ]
I/: ----------------------------------------------------
I/: [LOG :: INPUT [HH] :: ]
I/: ----------------------------------------------------
I/: [LOG :: INPUT [mm] :: ]
I/: ----------------------------------------------------
I/: [LOG :: INPUT [ss] :: -5]
I/: ----------------------------------------------------
I/: [LOG :: M_LOG :: Success Date Cal : 2025-04-04 09:58:17 / 2025-04-04 09:58:12]
I/: ----------------------------------------------------
I/: [LOG :: RETURN :: [2025-04-04 09:58:17, 1743728297169, 2025-04-04 09:58:12, 1743728292169]]
D///===========//: ================================================
// --------------------------------------------------------------------------------------
// --------------------------------------------------------------------------------------
[참고 사이트]
// --------------------------------------------------------------------------------------
https://blog.naver.com/kkh0977/222663026688?trackingCode=blog_bloghome_searchlist
// --------------------------------------------------------------------------------------
반응형