在java中计算两次差异的最佳方法是什么?

时间:2010-01-08 11:05:51

标签: java

我在阵列中有两次,我需要计算这两者之间的差异。我把时间换成了分钟,然后加了剩下的分钟。这给了我整体的总分钟数,一旦我这样做,我只是减去另一分钟的总分钟。然后将它们转换回小时和分钟。

double no1 = Double.parseDouble(array[i][4]);
int time1_calc = (int) (no1 * 100); //Remove decimal point
int time1hours = (time1_calc) / 100;
int time1mins = (time1_calc) % 100;
int time1HM = time1hours*60;
int time1_total = time1HM + time1mins;

上面的代码第二次使用,然后使用:

int total = time2_total - time1_total;

为此,所有计算“看起来”都有效,但例如10.18和09.35之间的差异是1小时23分钟或总共83分钟。我的节目似乎显示了43分钟。

我尝试了其他方法,但仍然无法让它发挥作用,任何想法?

6 个答案:

答案 0 :(得分:4)

使用DateFormat(可能SimpleDateFormat)对象来解析您的String,不要尝试使用parseDouble()(这是用于解析单个数字,而不是时间)。

答案 1 :(得分:2)

查看Joda库。

如果你想自己做,那么你的代码对我来说是正确的。

答案 2 :(得分:2)

int time1mins = (time1_calc) % 100;

分钟不是小时的剩余时间除以100,而是60.这就是那段代码应该做的吗?

此外,您可能最好只使用Calendar对象。

答案 3 :(得分:1)

Calendar time1 =  Calendar.getInstance();
// assign time1 date from your array

Calendar time2 =  Calendar.getInstance();
// assign time2 date from your array

long diff = time1.getTimeInMillis() - time2.getTimeInMillis();

答案 4 :(得分:0)

使用日期对象。然后使用它的getTime方法。它会给你时间,以毫秒(长)为单位。然后减去时间。然后将它们转换为分钟和小时。

答案 5 :(得分:0)

long timeMillis = System.currentTimeMillis();
System.out.println("Current time in millis:"+timeMillis);     
Thread.sleep(1200);   
long timeMillis2 = System.currentTimeMillis();
System.out.println("Current time in millis:"+timeMillis2);
System.out.println("Difference betwwen 2 times:"+(timeMillis2-timeMillis));