2014-02-21 3 views
0

나는 내 프로그램에 HH/MM/SS 형식의 문자열을 저장하고있다. 둘 사이의시, 분, 초 차이를 어떻게 계산합니까? 필요한 경우 두 날짜로 다시 변환 할 수 있지만 내 인생에 대한 차이를 계산하는 방법을 알아낼 수 없습니다!Java에서 HH/MM/SS 형식으로 두 날짜와 시간의 시간 차이를 계산 하시겠습니까?

클락 인 = 12시 10분 45초 clockout = 14시 10분 50초

timeDiff 2시 0분 15초이 있어야한다.

미리 감사드립니다.

+0

또한 - joda 시간을 사용할 수 없습니다. – user1853497

+0

http://www.mkyong.com/java/how-to-calculate-date-time-difference-in-java/ – Vitaly

답변

2

당신이 두 날짜가되면, 모든 다음 getTime()는 밀리 초 단위로 시간을 얻을 수 있습니다

: 당신이 미스의 차이, 시간에 변환이 있으면/분/초 쉽습니다

long date1Ms = clockIn.getTime(); 
long date2Ms = clockOut.getTime(); 
long difference = date1Ms - date2Ms; 

int hoursDiff = (int) (difference/(60 * 60 * 1000)); 
    int hoursMs = hoursDiff * 60 * 60 * 1000; 
    int minsDiff = (int) ((difference - hoursMs)/(60 * 1000)); 
    int minsMs = hoursMs + minsDiff * 60 * 1000; 
    int secDiff = (int) ((difference - minsMs)/1000); 

여기에서 hoursDiff, minsDiff 및 secDiff는 필요한 세그먼트를 제공합니다.

0

당신은 시간 차이이 도움이

SimpleDateFormat sdf=new SimpleDateFormat("HH:mm:ss"); 

Date d1 = sdf.parse("12:10:45"); 
Date d2 = sdf.parse("14:10:50"); 

long diff = Math.abs(d1.getTime() - d2.getTime()); 
long diffSeconds = diff/1000 % 60; 
long diffMinutes = diff/(60 * 1000) % 60; 
long diffHours = diff/(60 * 60 * 1000) % 24; 

System.out.println(diffHours+":"+diffMinutes+":"+diffSeconds); 

희망을 달성하기 위해 같은 것을 할 수 있습니다.

+0

야간 근무를하는 사람이 엿 같습니다. 월급 대신 인보이스를받습니다. – Affe

+0

나는 이해한다. 그러나 OP는 그것을 좋아한다. – Sanjeev