구글링을 하다보면 이것저것 예제가 많은데, 우리가 일상적으로 생각하는 디데이를 표현하고자 할때는 무리가 좀 있당. 특히 시간단위에서 오차가 나는 경우가 꽤나 있는데 다음과 같이 하면 좀 더 깔끔하고 정확한 D-Day가 구현되는 것 같아서 남겨둔당.
Calendar c = Calendar.getInstance(); // 비교할 시간
c.setTime("비교시간");
c.clear(Calendar.HOUR);
c.clear(Calendar.MINUTE);
c.clear(Calendar.SECOND);
c.clear(Calendar.MILLISECOND); // 시간, 분, 초, 밀리초 초기화
Calendar c2 = Calendar.getInstance(); // 현재 시간
c2.clear(Calendar.HOUR);
c2.clear(Calendar.MINUTE);
c2.clear(Calendar.SECOND);
c2.clear(Calendar.MILLISECOND); // 시간, 분, 초, 밀리초 초기화
long dDayDiff = c2.getTimeInMillis() - c.getTimeInMillis();
int day = (int)(Math.floor(TimeUnit.HOURS.convert(dDayDiff, TimeUnit.MILLISECONDS) / 24f));
'소프트웨어 > Java' 카테고리의 다른 글
Open JDK 14 Windows 10 설치 (0) | 2021.01.07 |
---|---|
[Java/IntelliJ] Runnable jar 생성 방법 (0) | 2020.04.02 |
[Eclipse/이클립스] CDT에서 Java 개발 환경 세팅 (0) | 2019.10.01 |
Object에서 클래스 이름 얻기 (0) | 2019.04.16 |