반응형
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으로 변경하여 차이값을 구하고 날짜 연산을 통해 차이 일수를 구할 수 있다.😙
반응형
'JAVA' 카테고리의 다른 글
JAVA - Maven 프로젝트에서 스케줄러 구성하기(Quartz) - 1 (0) | 2020.05.26 |
---|---|
jstl - forEach를 사용하면서 스크립틀릿 사용하기(pageContext) (0) | 2020.05.18 |
JAVA - 제네릭이란? (0) | 2020.04.29 |
JAVA - 랜덤 문자열 생성기 (0) | 2020.04.17 |
JAVA - int형 데이터를 char로 변경하기(int To char) (0) | 2020.04.17 |