我在阵列中有两次,我需要计算这两者之间的差异。我把时间换成了分钟,然后加了剩下的分钟。这给了我整体的总分钟数,一旦我这样做,我只是减去另一分钟的总分钟。然后将它们转换回小时和分钟。
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分钟。
我尝试了其他方法,但仍然无法让它发挥作用,任何想法?
答案 0 :(得分:4)
使用DateFormat
(可能SimpleDateFormat
)对象来解析您的String,不要尝试使用parseDouble()
(这是用于解析单个数字,而不是时间)。
答案 1 :(得分:2)
查看Joda库。
如果你想自己做,那么你的代码对我来说是正确的。
答案 2 :(得分:2)
答案 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));