为什么没有时间计算正确?

时间:2013-11-04 17:51:35

标签: java android time long-integer

我正在尝试进行简单的时间计算,其中显示文本框中的已用时间。问题是我的方法在返回其他东西时返回零值。是否有可能为此目的投入多头?任何帮助表示赞赏。

我的代码:

total_hours_paycycle是一个值为259200000的long。并且在调试器中显示为

        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: - ");
        }

2 个答案:

答案 0 :(得分:1)

如果您正在使用API​​级别9及以上版本,为什么不使用android的TimeUnit类:

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

答案 1 :(得分:0)

在这种情况下,我建议你看一下Joda Time。做日期数学通常会更好,它会考虑经常被忽视的问题,如时区,日光时间等。

可能太多了,但是罐子很小,它可以帮助您进行任何与日期/时间相关的操作。

此外,它被数百个应用程序使用,因此可以正常使用。