以十进制格式转换小时数

Kyl*_*ley 6 java

我已经尝试了多个解决这个问题的解决方案,但我似乎无法得到它.

我有十进制格式的时间,这是几个小时.我希望通过将其更改为DD:HH:MM:SS格式来使其更清晰.

例:

10.89小时== 10小时53分40秒

编辑:10.894945454545455 == 10小时53分40秒

我尝试过的:

int hours = (int) ((finalBuildTime) % 1);
int minutes = (int) ((finalBuildTime * (60*60)) % 60);
int seconds = (int) ((finalBuildTime * 3600) % 60);

return String.format("%s(h) %s(m) %s(s)", hours, minutes, seconds);
Run Code Online (Sandbox Code Playgroud)

返回的是: 0(h) 41(m) 41(s)

有什么建议?

Jus*_*KSU 8

  1. 几分钟内无需模块化.
  2. 你的分钟计算应该乘以60,而不是(60*60)

    double finalBuildTime = 10.89;
    int hours = (int) finalBuildTime;
    int minutes = (int) (finalBuildTime * 60) % 60;
    int seconds = (int) (finalBuildTime * (60*60)) % 60;
    
    System.out.println(String.format("%s(h) %s(m) %s(s)", hours, minutes, seconds));
    
    Run Code Online (Sandbox Code Playgroud)

此代码为您提供正确的输出

10(h) 53(m) 24(s)
Run Code Online (Sandbox Code Playgroud)

我相信你预期的40秒输出是不正确的.它应该是24秒.

(53*60 + 24)/(60*60) = 0.89
Run Code Online (Sandbox Code Playgroud)