게시판 글 구현시 date와 시간 관련 질문입니다.

조회수 1702회
    SimpleDateFormat qqqq = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

    SimpleDateFormat zxcv = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'");
    zxcv.setTimeZone(TimeZone.getTimeZone("UTC"));
    final Date zz = new Date();
    try {
        Date xxx = zxcv.parse("2016-10-31T08:25:24.000Z");
        String vvvv = qqqq.format(xxx);

        long subtract = zz.getTime() - xxx.getTime(); // 밀리세컨드 값으로 나옴
        month = (subtract/1000/60/60/24/30);
        day = (subtract/1000/60/60/24);
        hour = (subtract/1000/60/60);
        minute = (subtract/1000/60);

    } catch (ParseException e) {
        e.printStackTrace();
    }

이렇게 해봤는데 subtract 값이 밀리세컨드로 해서 나와서 long month, day, hour, minute을 저렇게 구현했습니다. 그런데 subtract의 값(시간 차이)이 클수록 minute은 60분을 hour는 24시간을 이런식으로 초과하게 되어있는데 분이 60분을 넘어가면 hour로 자동으로 되게하기 위해서는 어떻게 해야 하나요?

1 답변

  • 좋아요

    1

    싫어요
    채택 취소하기

    아래 코드로 한번 테스트 해보세요.

    public void printDifference(Date startDate, Date endDate) {
        //milliseconds
        long different = endDate.getTime() - startDate.getTime();
    
        System.out.println("startDate : " + startDate);
        System.out.println("endDate : "+ endDate);
        System.out.println("different : " + different);
    
        long secondsInMilli = 1000;
        long minutesInMilli = secondsInMilli * 60;
        long hoursInMilli = minutesInMilli * 60;
        long daysInMilli = hoursInMilli * 24;
    
        long elapsedDays = different / daysInMilli;
        different = different % daysInMilli;
    
        long elapsedHours = different / hoursInMilli;
        different = different % hoursInMilli;
    
        long elapsedMinutes = different / minutesInMilli;
        different = different % minutesInMilli;
    
        long elapsedSeconds = different / secondsInMilli;
    
        System.out.printf(
            "%d days, %d hours, %d minutes, %d seconds%n", 
            elapsedDays,
            elapsedHours, elapsedMinutes, elapsedSeconds);
    }
    

    출처

    • (•́ ✖ •̀)
      알 수 없는 사용자

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)