2014-02-21 807 views
0

我有一个时钟存储在我的程序中的时钟输出格式为HH/MM/SS作为字符串。我如何计算两者之间的小时数,分钟数和秒数之差?如果有必要,我可以将两者转换回日期,但不能为我的生活弄清楚如何计算差异!用java中的HH/MM/SS格式计算两个日期和时间之间的时间差?

例如

clockIn =十二时10分45秒 时钟输出=十四时10分50秒

timeDiff测量应该是2点00分15秒。

在此先感谢。

+0

也 - 不能使用约达时间 – 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

相关问题