2013-11-04 87 views
0

我想做一个简单的时间计算,我在文本框中显示经过的时间。问题是我的方法在返回其他东西时返回值为零。为了这个目的,多长时间可以投入整数?任何帮助表示赞赏。为什么时间计算不正确?

我的代码:

total_hours_paycycle是一个长期拥有的259200000.值是表示这样的调试器

 try{ 
      int total_minutes = (int) ((total_hours_paycycle/ (1000*60)) % 60); //<--Should return non-zero value, but is returning 0 
      int total_hours = (int) ((total_hours_paycycle/ (1000*60*60)) % 24); //<--Should return non-zero value, but is returning 0 
      hours_worked_converted = total_hours + "." + total_minutes; //<--returning 0.0 
      total_for_paycycle.setText("Total: "+hours_worked_converted + " hrs."); 
     }catch(Exception e){ 
      total_for_paycycle.setText("Total: - "); 
     } 
+4

你为什么想到第一次计算返回12? (25920000000/60000)%60 = 0. – Joel

+0

当total_hours_paycycle = 4320000时,它返回1小时12分钟。我不明白为什么25920000000返回零。 – DollaBill

回答

0

在此雾气,我建议你看一看Joda Time 。做日期数学通常会更好,并且考虑到经常被忽略的问题,例如时区,日光时间等。

它可能太多了,但是瓶子很小,它可以帮助您处理任何日期/时间你有的操作。

加上它被数百个应用程序使用,所以它的工作原理。

1

你为什么不使用Android的TimeUnit类,如果您正在为API 9级及以上:

int total_minutes = (int)TimeUnit.MILLISECONDS.toMinutes(milliseconds); 
    int total_hours = (int)TimeUnit.MILLISECONDS.toHours(milliseconds);