0

我正在尝试进行简单的时间计算,在文本框中显示经过的时间。问题是我的方法在应该返回其他值时返回零值。是否有可能为此目的将 long 转换为 int?任何帮助表示赞赏。

我的代码:

total_hours_paycycle 是一个 long 值,值为 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

2 回答 2

1

如果您使用 API 级别 9 及更高级别,为什么不使用 android 的TimeUnit类:

    int total_minutes = (int)TimeUnit.MILLISECONDS.toMinutes(milliseconds);
    int total_hours = (int)TimeUnit.MILLISECONDS.toHours(milliseconds); 
于 2013-11-04T18:30:42.093 回答
0

在这迷雾中,我建议你看看Joda Time。做日期数学通常要好得多,它考虑到经常被忽视的问题,如时区、日光时间等。

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

此外,数百个应用程序都在使用它,所以它可以工作。

于 2013-11-04T18:24:00.253 回答