Notice
Recent Posts
Recent Comments
Link
투케이2K
108. (TWOK/UTIL) [Android/kotlin] C_Util - string, 날짜, 빌드 정보, 모바일 제어, 형 변환 등 유틸 파일 클래스 본문
투케이2K 유틸파일
108. (TWOK/UTIL) [Android/kotlin] C_Util - string, 날짜, 빌드 정보, 모바일 제어, 형 변환 등 유틸 파일 클래스
투케이2K 2022. 12. 12. 20:00[설 명]
프로그램 : Android / Kotlin
설 명 : C_Util - string, 날짜, 빌드 정보, 모바일 제어, 형 변환 등 유틸 파일 클래스
[소스 코드]
package com.example.kotlinproject
import android.app.NotificationManager
import android.content.Context
import android.os.Build
import android.util.DisplayMetrics
import android.util.Log
import android.view.WindowManager
import org.json.JSONObject
import java.sql.Timestamp
import java.text.SimpleDateFormat
import java.util.*
class C_Util {
/**
* // -----------------------------------------
* TODO [클래스 설명]
* // -----------------------------------------
* 1. 프로그램 상 필요한 유틸 파일 모음 클래스
* // -----------------------------------------
* */
/**
* // -----------------------------------------
* // TODO [빠른 로직 찾기 : 주석 로직 찾기]
* // -----------------------------------------
* // [SEARCH FAST] : [RETURN] getNowDateTime24 : 24 시간 형태 현재 날짜 확인 : 2022.03.21 14:34:20 월요일
* // -----------------------------------------
* // [SEARCH FAST] : [RETURN] getNowDateTime24Number : 24 시간 형태 현재 날짜 확인 : 20220321143420
* // -----------------------------------------
* // [SEARCH FAST] : [VOID] showMobileBuildInfo : 모바일 빌드 정보 확인 : (ex : Build.BRAND)
* // -----------------------------------------
* // [SEARCH FAST] : [RETURN] getMobileCode : 모바일 버전 코드 확인 : (ex : 1)
* // -----------------------------------------
* // [SEARCH FAST] : [RETURN] getMobileVersion : 모바일 버전명 확인 : (ex : 1.0.0)
* // -----------------------------------------
* // [SEARCH FAST] : [RETURN] getMobilePackageName : 애플리케이션 패키지명 확인 : (ex : com.test.app)
* // -----------------------------------------
* // [SEARCH FAST] : [VOID] removeAllBadge : 노티피케이션 전체 알림 뱃지 지우기
* // -----------------------------------------
* // [SEARCH FAST] : [RETURN] getMobileSize : 모바일 화면 크기 구하기 DP : W / S / M / L / LX / NO
* // -----------------------------------------
* // [SEARCH FAST] : [RETURN] getTimeStamp_To_Date : 타임 스탬프에서 Date 24시간 날짜 형식으로 변환 실시 : 20220516073529
* // -----------------------------------------
* // [SEARCH FAST] : [RETURN] stringNotNull : String 문자열 데이터 널 판단 실시 : true / false
* // -----------------------------------------
* // [SEARCH FAST] : [RETURN] stringMultiContains : String 문자열 다중 contains 문자 포함 확인 실시 : true / false
* // -----------------------------------------
* // [SEARCH FAST] : [RETURN] stringJsonObjectEnable : String 문자열 데이터를 Json Object 형식으로 변경 가능 한지 체크 실시 : true / false
* // -----------------------------------------
* // [SEARCH FAST] : [RETURN] stringIsNumber : string 문자열 데이터 모두 정수 구성 여부 확인 : true / false
* // -----------------------------------------
* // [SEARCH FAST] : [RETURN] getTimeStamp : 현재 날짜 및 시간 밀리세컨드 13자리 타임스탬프 값 반환
* // -----------------------------------------
* */
// TODO [companion object >> static 선언 실시]
companion object {
// TODO [SEARCH FAST] : [RETURN] getNowDateTime24 : 24 시간 형태 현재 날짜 확인 : 2022.03.21 14:34:20 월요일
fun getNowDateTime24() : String {
/**
* // -----------------------------------------
* [getNowDateTime24 메소드 설명]
* // -----------------------------------------
* 1. 24 시간 형태 현재 날짜 확인 수행 메소드
* // -----------------------------------------
* 2. 호출 방법 : C_Util.getNowDateTime24()
* // -----------------------------------------
* 3. 리턴 데이터 : 2022.03.21 14:34:20 월요일
* // -----------------------------------------
* */
// [리턴 변수 선언]
var returnData = ""
// [로직 처리 실시]
try {
// [현재시간을 가져오기]
val long_now = System.currentTimeMillis()
// [현재 시간을 Date 타입으로 변환]
val t_date = Date(long_now)
// [날짜, 시간을 가져오고 싶은 형태 선언]
val t_dateFormat = SimpleDateFormat("yyyy-MM-dd kk:mm:ss E", Locale("ko", "KR"))
// [현재 시간을 dateFormat 에 선언한 형태의 String 으로 변환]
val str_date = t_dateFormat.format(t_date)
// [리턴 변수에 삽입]
returnData = str_date
}
catch (e: Exception) {
e.printStackTrace()
}
// [로그 출력 실시]
//*
Log.i("---","---" + "\n")
Log.d("//===========//","================================================")
Log.i("","\n"+"[C_Util >> getNowDateTime24() :: 24 시간 형태 현재 날짜 확인]")
Log.i("","\n"+"-----------------------------------------")
Log.i("","\n"+"[RETURN :: "+ returnData +"]")
Log.d("//===========//","================================================")
Log.i("---","---" + "\n")
// */
// [리턴 반환 실시]
return returnData
}
// TODO [SEARCH FAST] : [RETURN] getNowDateTime24 : 24 시간 형태 현재 날짜 확인 : 2022.03.21 14:34:20 월요일
fun getNowDateTime24Number() : String {
/**
* // -----------------------------------------
* [getNowDateTime24Number 메소드 설명]
* // -----------------------------------------
* 1. 24 시간 형태 현재 날짜 확인 수행 메소드
* // -----------------------------------------
* 2. 호출 방법 : C_Util.getNowDateTime24Number()
* // -----------------------------------------
* 3. 리턴 데이터 : 20220321143420
* // -----------------------------------------
* */
// [리턴 변수 선언]
var returnData = ""
// [로직 처리 실시]
try {
// [현재시간을 가져오기]
val long_now = System.currentTimeMillis()
// [현재 시간을 Date 타입으로 변환]
val t_date = Date(long_now)
// [날짜, 시간을 가져오고 싶은 형태 선언]
val t_dateFormat = SimpleDateFormat("yyyyMMddkkmmss", Locale("ko", "KR"))
// [현재 시간을 dateFormat 에 선언한 형태의 String 으로 변환]
val str_date = t_dateFormat.format(t_date)
// [리턴 변수에 삽입]
returnData = str_date
}
catch (e: Exception) {
e.printStackTrace()
}
// [로그 출력 실시]
//*
Log.i("---","---" + "\n")
Log.d("//===========//","================================================")
Log.i("","\n"+"[C_Util >> getNowDateTime24Number() :: 24 시간 형태 현재 날짜 확인]")
Log.i("","\n"+"-----------------------------------------")
Log.i("","\n"+"[RETURN :: "+ returnData +"]")
Log.d("//===========//","================================================")
Log.i("---","---" + "\n")
// */
// [리턴 반환 실시]
return returnData
}
// TODO [SEARCH FAST] : [VOID] showMobileBuildInfo : 모바일 빌드 정보 확인 : (ex : Build.BRAND)
fun showMobileBuildInfo() {
/**
* // -----------------------------------------
* [showMobileBuildInfo 메소드 설명]
* // -----------------------------------------
* 1. 모바일 빌드 정보 확인 : (ex : Build.BRAND)
* // -----------------------------------------
* 2. 호출 방법 : C_Util.showMobileBuildInfo()
* // -----------------------------------------
* */
// [로직 처리 실시]
try {
// [로그 출력 실시]
//*
Log.i("---","---" + "\n")
Log.d("//===========//","================================================")
Log.i("","\n"+"[C_Util >> showMobileBuildInfo() :: 모바일 빌드 정보 확인]")
Log.i("","\n"+"-----------------------------------------")
Log.i("","\n"+"[BRAND :: "+ Build.BRAND.toString() +"]")
Log.i("","\n"+"[MODEL :: "+ Build.MODEL.toString() +"]")
Log.i("","\n"+"[MANUFACTURER :: "+ Build.MANUFACTURER.toString() +"]")
Log.i("","\n"+"[BOARD :: "+ Build.BOARD.toString() +"]")
Log.i("","\n"+"[ID :: "+ Build.ID.toString() +"]")
Log.i("","\n"+"[BOOTLOADER :: "+ Build.BOOTLOADER.toString() +"]")
Log.i("","\n"+"[DEVICE :: "+ Build.DEVICE.toString() +"]")
Log.i("","\n"+"[DISPLAY :: "+ Build.DISPLAY.toString() +"]")
Log.i("","\n"+"[HARDWARE :: "+ Build.HARDWARE.toString() +"]")
Log.i("","\n"+"[HOST :: "+ Build.HOST.toString() +"]")
Log.i("","\n"+"[PRODUCT :: "+ Build.PRODUCT.toString() +"]")
Log.i("","\n"+"[TYPE :: "+ Build.TYPE.toString() +"]")
Log.i("","\n"+"[USER :: "+ Build.USER.toString() +"]")
Log.i("","\n"+"[TAGS :: "+ Build.TAGS.toString() +"]")
Log.i("","\n"+"[TIME :: "+ Build.TIME.toString() +"]")
Log.d("//===========//","================================================")
Log.i("---","---" + "\n")
// */
}
catch (e: Exception) {
e.printStackTrace()
}
}
// TODO [SEARCH FAST] : [RETURN] getMobileCode : 모바일 버전 코드 확인 : (ex : 1)
fun getMobileCode(mContext: Context) : String {
/**
* // -----------------------------------------
* [getMobileCode 메소드 설명]
* // -----------------------------------------
* 1. 모바일 버전 코드 확인 (ex : 1)
* // -----------------------------------------
* 2. 호출 방법 : C_Util.getMobileCode(this@A_Intro)
* // -----------------------------------------
* 3. 리턴 데이터 : 1
* // -----------------------------------------
* */
// [리턴 변수 선언]
var returnData = ""
// [로직 처리 실시]
try {
// [빌드 버전 코드 : ex) 1]
val pi = mContext.packageManager.getPackageInfo(mContext.packageName, 0)
// [리턴 변수에 삽입]
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
returnData = pi.longVersionCode.toString()
}
else {
returnData = pi.versionCode.toString()
}
}
catch (e: Exception) {
e.printStackTrace()
}
// [로그 출력 실시]
//*
Log.i("---","---" + "\n")
Log.d("//===========//","================================================")
Log.i("","\n"+"[C_Util >> getMobileCode() :: 모바일 버전 코드 확인]")
Log.i("","\n"+"-----------------------------------------")
Log.i("","\n"+"[RETURN :: "+ returnData +"]")
Log.d("//===========//","================================================")
Log.i("---","---" + "\n")
// */
// [리턴 반환 실시]
return returnData
}
// TODO [SEARCH FAST] : [RETURN] getMobileVersion : 모바일 버전명 확인 : (ex : 1.0.0)
fun getMobileVersion(mContext: Context) : String {
/**
* // -----------------------------------------
* [getMobileVersion 메소드 설명]
* // -----------------------------------------
* 1. 모바일 버전명 확인 : (ex : 1.0.0)
* // -----------------------------------------
* 2. 호출 방법 : C_Util.getMobileVersion(this@A_Intro)
* // -----------------------------------------
* 3. 리턴 데이터 : 1.0.0
* // -----------------------------------------
* */
// [리턴 변수 선언]
var returnData = ""
// [로직 처리 실시]
try {
// [빌드 버전명 : ex) 1.0.0]
val pi = mContext.packageManager.getPackageInfo(mContext.packageName, 0)
// [리턴 변수에 삽입]
returnData = pi.versionName.toString()
}
catch (e: Exception) {
e.printStackTrace()
}
// [로그 출력 실시]
//*
Log.i("---","---" + "\n")
Log.d("//===========//","================================================")
Log.i("","\n"+"[C_Util >> getMobileVersion() :: 모바일 버전명 확인]")
Log.i("","\n"+"-----------------------------------------")
Log.i("","\n"+"[RETURN :: "+ returnData +"]")
Log.d("//===========//","================================================")
Log.i("---","---" + "\n")
// */
// [리턴 반환 실시]
return returnData
}
// TODO [SEARCH FAST] : [RETURN] getMobilePackageName : 애플리케이션 패키지명 확인 : (ex : com.test.app)
fun getMobilePackageName(mContext: Context) : String {
/**
* // -----------------------------------------
* [getMobilePackageName 메소드 설명]
* // -----------------------------------------
* 1. 애플리케이션 패키지명 확인 : (ex : com.test.app)
* // -----------------------------------------
* 2. 호출 방법 : C_Util.getMobilePackageName(this@A_Intro)
* // -----------------------------------------
* 3. 리턴 데이터 : com.test.app
* // -----------------------------------------
* */
// [리턴 변수 선언]
var returnData = ""
// [로직 처리 실시]
try {
// [패키지 명칭 : ex) com.test.app]
returnData = mContext.packageName.toString()
}
catch (e: Exception) {
e.printStackTrace()
}
// [로그 출력 실시]
//*
Log.i("---","---" + "\n")
Log.d("//===========//","================================================")
Log.i("","\n"+"[C_Util >> getMobilePackageName() :: 애플리케이션 패키지명 확인]")
Log.i("","\n"+"-----------------------------------------")
Log.i("","\n"+"[RETURN :: "+ returnData +"]")
Log.d("//===========//","================================================")
Log.i("---","---" + "\n")
// */
// [리턴 반환 실시]
return returnData
}
// TODO [SEARCH FAST] : [VOID] removeAllBadge : 노티피케이션 전체 알림 뱃지 지우기
fun removeAllBadge(mContext: Context) {
/**
* // -----------------------------------------
* [removeAllBadge 메소드 설명]
* // -----------------------------------------
* 1. 노티피케이션 전체 알림 뱃지 지우기
* // -----------------------------------------
* 2. 호출 방법 : C_Util.removeAllBadge(this@A_Intro)
* // -----------------------------------------
* */
// [로직 처리 실시]
try {
// [노티피케이션 알림 뱃지 지우기]
val notificationManager = mContext.getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager
notificationManager.cancelAll()
// [로그 출력 실시]
//*
Log.i("---","---" + "\n")
Log.d("//===========//","================================================")
Log.i("","\n"+"[C_Util >> removeAllBadge() :: 노티피케이션 전체 알림 뱃지 지우기 완료]")
Log.d("//===========//","================================================")
Log.i("---","---" + "\n")
// */
}
catch (e: Exception) {
e.printStackTrace()
}
}
// TODO [SEARCH FAST] : [RETURN] getMobileSize : 모바일 화면 크기 구하기 DP : W / S / M / L / LX / NO
fun getMobileSize(mContext: Context) : String {
/**
* // -----------------------------------------
* [getMobileSize 메소드 설명]
* // -----------------------------------------
* 1. 모바일 화면 크기 구하기 DP : W / S / M / L / LX / NO
* // -----------------------------------------
* 2. 호출 방법 : C_Util.getMobileSize(this@A_Intro)
* // -----------------------------------------
* 3. 리턴 데이터 : M
* // -----------------------------------------
* */
// [리턴 변수 선언]
var returnData = ""
var dpWidthValues = ""
var dpHeightValues = ""
// [로직 처리 실시]
try {
val display = (mContext.getSystemService(Context.WINDOW_SERVICE) as WindowManager).defaultDisplay
val outMetrics = DisplayMetrics()
display.getMetrics(outMetrics)
val density = mContext.resources.displayMetrics.density
val dpHeight = outMetrics.heightPixels / density
val dpWidth = outMetrics.widthPixels / density
val dpWidthValue = dpWidth.toInt()
val dpHeightValue = dpHeight.toInt()
/**
* // -----------------------------------------
* [장치] [가로] [세로]
* // -----------------------------------------
* 1) Watch = 250dp 250dp
* // -----------------------------------------
* 2) mobile = 320dp 569dp (s6)
* // -----------------------------------------
* 3) mobile = 400dp 730dp (note 5)
* // -----------------------------------------
* 4) mobile = 400dp 810dp (note 10 / LG Q9)
* // -----------------------------------------
* 5) mobile = 800dp 1280dp (Tab)
* // -----------------------------------------
* 6) Tablet = 960dp 600dp (Tab)
* 1280dp 800dp
* // -----------------------------------------
*/
if (dpHeightValue < 320) { //0 ~ 319
returnData = "W"
} else if (dpHeightValue < 660) { //320 ~ 659
returnData = "S"
} else if (dpHeightValue < 750) { //660 ~ 749
returnData = "M"
} else if (dpHeightValue < 900) { //750 ~ 899
returnData = "L"
} else if (dpHeightValue < 1600) { //900 ~ 1599
returnData = "XL"
} else {
returnData = "NO"
}
dpHeightValues = dpHeightValue.toString()
dpWidthValues = dpWidthValue.toString()
}
catch (e: Exception) {
e.printStackTrace()
}
// [로그 출력 실시]
//*
Log.i("---","---" + "\n")
Log.d("//===========//","================================================")
Log.i("","\n"+"[C_Util >> getMobileSize() :: 모바일 화면 크기 구하기 DP 사이즈]")
Log.i("","\n"+"-----------------------------------------")
Log.i("","\n"+"[모델 :: "+ Build.MODEL.toString() +"]")
Log.i("","\n"+"[제조사 :: "+ Build.MANUFACTURER.toString() +"]")
Log.i("","\n"+"[가로 (DP) :: "+ dpWidthValues +"]")
Log.i("","\n"+"[세로 (DP) :: "+ dpHeightValues +"]")
Log.i("","\n"+"-----------------------------------------")
Log.i("","\n"+"[RETURN :: "+ returnData +"]")
Log.d("//===========//","================================================")
Log.i("---","---" + "\n")
// */
// [리턴 반환 실시]
return returnData
}
// TODO [SEARCH FAST] : [RETURN] getTimeStamp_To_Date : 타임 스탬프에서 Date 24시간 날짜 형식으로 변환 실시 : 20220516073529
fun getTimeStamp_To_Date(timeStamp : String) : String {
/**
* // -----------------------------------------
* [getTimeStamp_To_Date 메소드 설명]
* // -----------------------------------------
* 1. 타임 스탬프에서 Date 24시간 날짜 형식으로 변환 실시 (20220321143420)
* // -----------------------------------------
* 2. 호출 방법 : C_Util.getTimeStamp_To_Date("1652686529184")
* // -----------------------------------------
* 3. 리턴 데이터 : 20220516073529
* // -----------------------------------------
* */
// [리턴 변수 선언]
var returnData = ""
// [로직 처리 실시]
try {
if (timeStamp != null && timeStamp.length>0 && timeStamp.isEmpty() == false
&& timeStamp.trim().equals("") == false && timeStamp.trim().equals("null") == false){
// [타임 스탬프 값 (1646295046677) 을 Date 로 변경]
val date = Date(timeStamp.toLong())
// [타임 스탬프 값을 포맷 Date 형식으로 변경]
val sdf = SimpleDateFormat("yyyyMMddkkmmss", Locale("ko", "KR"))
// [리턴 변수에 삽입]
returnData = sdf.format(date).toString()
}
}
catch (e: Exception) {
e.printStackTrace()
}
// [로그 출력 실시]
//*
Log.i("---","---" + "\n")
Log.d("//===========//","================================================")
Log.i("","\n"+"[C_Util >> getTimeStamp_To_Date() :: 타임 스탬프 >> 24 시간 형태 Date 형 변환 실시]")
Log.i("","\n"+"-----------------------------------------")
Log.i("","\n"+"[INPUT :: "+ timeStamp +"]")
Log.i("","\n"+"-----------------------------------------")
Log.i("","\n"+"[RETURN :: "+ returnData +"]")
Log.d("//===========//","================================================")
Log.i("---","---" + "\n")
// */
// [리턴 반환 실시]
return returnData
}
// TODO [SEARCH FAST] : [RETURN] stringNotNull : String 문자열 데이터 널 판단 실시 : true / false
fun stringNotNull(data : String) : Boolean {
/**
* // -----------------------------------------
* [stringNotNull 메소드 설명]
* // -----------------------------------------
* 1. String 문자열 데이터 널 판단 실시 (true / false)
* // -----------------------------------------
* 2. 호출 방법 : C_Util.stringNotNull("twok")
* // -----------------------------------------
* 3. 리턴 데이터 : 문자열 데이터가 널이 아닌 경우 true / 널인 경우 false
* // -----------------------------------------
* */
// [리턴 변수 선언]
var returnData = false
// [로직 처리 실시]
try {
if (data != null && data.length>0 && data.isEmpty() == false
&& data.trim().equals("") == false && data.trim().equals("null") == false
&& data.trim().equals("undefined") == false){
// [리턴 변수에 삽입]
returnData = true
}
}
catch (e: Exception) {
e.printStackTrace()
}
// [로그 출력 실시]
//*
Log.i("---","---" + "\n")
Log.d("//===========//","================================================")
Log.i("","\n"+"[C_Util >> stringNotNull() :: String 문자열 데이터 널 판단 실시]")
Log.i("","\n"+"-----------------------------------------")
Log.i("","\n"+"[INPUT :: "+ data +"]")
Log.i("","\n"+"-----------------------------------------")
Log.i("","\n"+"[RETURN :: "+ returnData +"]")
Log.d("//===========//","================================================")
Log.i("---","---" + "\n")
// */
// [리턴 반환 실시]
return returnData
}
// TODO [SEARCH FAST] : [RETURN] stringMultiContains : String 문자열 다중 contains 문자 포함 확인 실시 : true / false
fun stringMultiContains(data : String, containsArray : Array<String>) : Boolean {
/**
* // -----------------------------------------
* [stringMultiContains 메소드 설명]
* // -----------------------------------------
* 1. String 문자열 다중 contains 문자 포함 확인 실시 (true / false)
* // -----------------------------------------
* 2. 호출 방법 : C_Util.stringMultiContains("twok,투케이,반갑습니다", arrayOf<String>("twok", "투케이"))
* // -----------------------------------------
* 3. 리턴 데이터 : 특정 배열 값을 모두 포함하는 경우 true / 아닌 경우 false
* // -----------------------------------------
* */
// [리턴 변수 선언]
var returnData = false
// [로직 처리 실시]
try {
if (data != null && data.length>0 && data.isEmpty() == false
&& data.trim().equals("") == false && data.trim().equals("null") == false
&& data.trim().equals("undefined") == false
&& containsArray != null && containsArray.isEmpty() == false && containsArray.size > 0){
// [변수 선언 실시]
var checkContains = true
// [for 반복문을 돌면서 contains 체크 실시]
for (i in 0 .. containsArray.size-1 step(1)) {
if (data.contains(containsArray[i]) == true) {
} else {
// [하나라도 값을 포함하지 않는 경우 false 지정]
checkContains = false
}
}
// [리턴 변수에 삽입]
returnData = checkContains
}
}
catch (e: Exception) {
e.printStackTrace()
}
// [로그 출력 실시]
//*
Log.i("---","---" + "\n")
Log.d("//===========//","================================================")
Log.i("","\n"+"[C_Util >> stringMultiContains() :: String 문자열 데이터 다중 contains 포함 여부 확인 실시]")
Log.i("","\n"+"-----------------------------------------")
Log.i("","\n"+"[INPUT [DATA] :: "+ data +"]")
Log.i("","\n"+"-----------------------------------------")
Log.i("","\n"+"[INPUT [ARRAY] :: "+ Arrays.toString(containsArray) +"]")
Log.i("","\n"+"-----------------------------------------")
Log.i("","\n"+"[RETURN :: "+ returnData +"]")
Log.d("//===========//","================================================")
Log.i("---","---" + "\n")
// */
// [리턴 반환 실시]
return returnData
}
// TODO [SEARCH FAST] : [RETURN] stringJsonObjectEnable : String 문자열 데이터를 Json Object 형식으로 변경 가능 한지 체크 실시 : true / false
fun stringJsonObjectEnable(data : String) : Boolean {
/**
* // -----------------------------------------
* [stringJsonObjectEnable 메소드 설명]
* // -----------------------------------------
* 1. String 문자열 데이터를 Json Object 형식으로 변경 가능 한지 체크 실시 (true / false)
* // -----------------------------------------
* 2. 호출 방법 :
*
* val data = "{\n" +
* " \"userId\":1,\n" +
* " \"id\":1\n" +
* "}"
*
* C_Util.stringJsonObjectEnable(data)
*
* // -----------------------------------------
* 3. 리턴 데이터 : Json 형식으로 변경 가능한 경우 true / 아닌 경우 false
* // -----------------------------------------
* */
// [리턴 변수 선언]
var returnData = false
// [로직 처리 실시]
try {
if (data != null && data.length>0 && data.isEmpty() == false
&& data.trim().equals("") == false && data.trim().equals("null") == false
&& data.trim().equals("undefined") == false){
// [Json Object 형식으로 변경 가능한지 확인 실시]
try {
val checkJson = JSONObject(data)
// [리턴 데이터 삽입 실시]
returnData = true
} catch (ex: Exception) {
ex.printStackTrace();
}
}
}
catch (e: Exception) {
e.printStackTrace()
}
// [로그 출력 실시]
//*
Log.i("---","---" + "\n")
Log.d("//===========//","================================================")
Log.i("","\n"+"[C_Util >> stringJsonObjectEnable() :: String 문자열 데이터 Json Object 변환 결과]")
Log.i("","\n"+"-----------------------------------------")
Log.i("","\n"+"[INPUT :: "+ data +"]")
Log.i("","\n"+"-----------------------------------------")
Log.i("","\n"+"[RETURN :: "+ returnData +"]")
Log.d("//===========//","================================================")
Log.i("---","---" + "\n")
// */
// [리턴 반환 실시]
return returnData
}
// TODO [SEARCH FAST] : [RETURN] stringIsNumber : string 문자열 데이터 모두 정수 구성 여부 확인 : true / false
fun stringIsNumber(data : String) : Boolean {
/**
* // -----------------------------------------
* [stringIsNumber 메소드 설명]
* // -----------------------------------------
* 1. string 문자열 데이터 모두 정수 구성 여부 확인 (true / false)
* // -----------------------------------------
* 2. 호출 방법 : C_Util.stringIsNumber("1234")
* // -----------------------------------------
* 3. 리턴 데이터 : string 문자열 데이터가 모두 정수값으로 된 경우 true / 아니면 false
* // -----------------------------------------
* */
// [리턴 변수 선언]
var returnData = false
// [로직 처리 실시]
try {
if (data != null && data.length>0 && data.isEmpty() == false
&& data.trim().equals("") == false && data.trim().equals("null") == false
&& data.trim().equals("undefined") == false){
// [Character.isDigit 사용해 정수값 체크 실시]
try {
// [초기 변수 선언]
var checkNum = true
// [반복문 수행 실시]
for (i in 0 .. data.length-1 step(1)) {
if (Character.isDigit(data[i]) == true) { // [숫자]
}
else { // [문자]
if (i == 0 && data[i] == '-' || data[i] == '+') { // [처음 문자가 - , + 인 경우는 통과 실시]
} else {
// [데이터 삽입 실시]
checkNum = false
}
}
}
// [리턴 변수에 삽입]
returnData = checkNum
} catch (ex: Exception) {
ex.printStackTrace();
}
}
}
catch (e: Exception) {
e.printStackTrace()
}
// [로그 출력 실시]
//*
Log.i("---","---" + "\n")
Log.d("//===========//","================================================")
Log.i("","\n"+"[C_Util >> stringIsNumber() :: string 문자열 데이터 모두 정수 값 구성 여부 확인 실시]")
Log.i("","\n"+"-----------------------------------------")
Log.i("","\n"+"[INPUT :: "+ data +"]")
Log.i("","\n"+"-----------------------------------------")
Log.i("","\n"+"[RETURN :: "+ returnData +"]")
Log.d("//===========//","================================================")
Log.i("---","---" + "\n")
// */
// [리턴 반환 실시]
return returnData
}
// TODO [SEARCH FAST] : [RETURN] getTimeStamp : 현재 날짜 및 시간 밀리세컨드 13자리 타임스탬프 값 반환
fun getTimeStamp() : String {
/**
* // -----------------------------------------
* [getTimeStamp 메소드 설명]
* // -----------------------------------------
* 1. 현재 날짜 및 시간 데이터를 13 자리 타임 스탬프 값으로 반환
* // -----------------------------------------
* 2. 호출 방법 : C_Util.getTimeStamp()
* // -----------------------------------------
* 3. 리턴 데이터 : 1663031163703
* // -----------------------------------------
* */
// [리턴 변수 선언]
var returnData = ""
var nowDate = ""
// [로직 처리 실시]
try {
// [타임 스탬프 객체 생성]
val timestamp = Timestamp(System.currentTimeMillis())
// [리턴 변수에 삽입]
returnData = java.lang.String.valueOf(timestamp.getTime()) // 타임 스탬프 밀리 세컨드
// [현재 날짜 및 시간 검증]
val date = Date(returnData.toLong())
// [타임 스탬프 값을 포맷 Date 형식으로 변경]
val sdf = SimpleDateFormat("yyyyMMddkkmmss", Locale("ko", "KR"))
// [현재 날짜 및 시간 출력]
nowDate = sdf.format(date).toString()
}
catch (e: Exception) {
e.printStackTrace()
}
// [로그 출력 실시]
//*
Log.i("---","---" + "\n")
Log.d("//===========//","================================================")
Log.i("","\n"+"[C_Util >> getTimeStamp() :: 현재 날짜 및 시간 13 자리 타임 스탬프 확인]")
Log.i("","\n"+"-----------------------------------------")
Log.i("","\n"+"[NOW_DATE :: "+ nowDate +"]")
Log.i("","\n"+"-----------------------------------------")
Log.i("","\n"+"[RETURN :: "+ returnData +"]")
Log.d("//===========//","================================================")
Log.i("---","---" + "\n")
// */
// [리턴 반환 실시]
return returnData
}
} // [companion 종료]
} // TODO [클래스 종료]
반응형
'투케이2K 유틸파일' 카테고리의 다른 글
Comments