반응형

java8 LocalDate등을 사용하면 좀 더 쉽게 날짜차이를 구할 수 있지만 아직까지 java 1.7이하를 쓰고 있는 경우가 많다. 7이하버전에서 기준일로부터 금일까지 차이라던지 두 날짜의 값이 있을때 날짜간의 차이를 구해보겠다.

 

두 날짜간의 차이를 구하기 위해서는 해당하는 날짜를 최소단위인 초단위로 변경한 다음 연산을 하고 원하는 일자로 변경하면 되는데, 여기선 getTimeInMillis()를 사용한다. 해당 메소드는 1/1000초로 반환되기 때문에 초단위로 구하기 위해서는 1000으로 나눠주고 일자로 변경하기 위해서는 초로 변경한 값에 (24(시간) * 60(분) * 60(초))를 나눠준다.

 

 

 

오늘부터 특정일자의 차이를 구하기

public class CalTest {

	public static void main(String[] args) throws ParseException {
		Calendar getToday = Calendar.getInstance();
		getToday.setTime(new Date()); //금일 날짜
		
		String s_date = "2020-03-01";
		Date date = new SimpleDateFormat("yyyy-MM-dd").parse(s_date);
		Calendar cmpDate = Calendar.getInstance();
		cmpDate.setTime(date); //특정 일자
		
		long diffSec = (getToday.getTimeInMillis() - cmpDate.getTimeInMillis()) / 1000;
		long diffDays = diffSec / (24*60*60); //일자수 차이
		
		System.out.println(diffSec + "초 차이");
		System.out.println(diffDays + "일 차이");
	}

}

오늘은 포스팅일자인 2020-05-11일을 기준으로 결과값이다.

 

각 해당하는 일자를 ms으로 변경하여 차이값을 구하고 날짜 연산을 통해 차이 일수를 구할 수 있다.😙

반응형