부트캠프/TIL

[부트캠프] TIL - char 배열 정렬, MySQL - DATEDIFF

purple95 2024. 7. 28. 23:11

Java 언어에서 

String 타입의 배열을 toCharArray()로 char[] 배열로 분해한 뒤

활용하는 경우가 종종 있다, 오늘은 내림차순 정렬이 필요하여 

Arrays.sort() 함수를 사용하려고 char[] 배열을 전달하였고, 내림차순으로 하고자 Collections.reverseOrder()를 전달했는데

타입 오류가 발생하였다.

 

//잘못된 사용.

char[] x_arr = X.toCharArray();
char[] y_arr = Y.toCharArray();
int x_idx = 0;
int y_idx = 0;
        
Arrays.sort(x_arr,Collections.reverseOrder());
Arrays.sort(y_arr,Collections.reverseOrder());

 

이유는 char 타입이 Object 타입이 아니기 때문으로, Arrays.sort()를 사용하여 오름차순 정렬은 사용할 수 있지만.

평소와 같이 Collections.reverseOrder()를 전달하여 내림차순으로 정렬할 수는 없고 다른 방법을 사용해야 한다고한다.

 

간단하게 for문을 사용하여 뒤집는방법을 적어본다.

 

1. for문을 사용하여 인위적으로 직접 뒤집어주는것.

import java.util.Arrays;

char[] alpha = {'a','b','c','d','e'};
Arrays.sort(alpha);		//오름차순 정렬

//뒤집은 결과를 담을 변수
char[] temp = new char[alpha.length];

for(int i=0; i<alpha.length; i++){
	temp[alpha.length-1-i] = alpha[i];
}

 


 

DATEDIFF

mysql에서 날짜차이 계산에 DATEDIFF와, TIMESTAMPDIFF를 지원합니다.

간단하게, 일수의 차이를 구할 때는 DATEDIFF를, 년 / 월 / 시간 등을 지정하여 구할 때는 TIMESTAMPDIFF를 사용

 

1.DATEDIFF

DATEDIFF(첫번째날짜, 두번째날짜)

 

2.TIMESTAMPDIFF

TIMESTAMPDIFF(단위, 첫번쨰날짜, 두번쨰날짜)

 

여기에서 단위는

  • SECOND : 초
  • MINUTE : 분
  • HOUR : 시간
  • DAY : 일
  • WEEK : 주
  • MONTH : 월
  • QUARTER : 분기
  • YEAR : 연도

나머지는 개인 과제 진행