当前位置: 首页 > 面试题库 >

Java:使用TimeUnit将秒转换为日,时,分和秒

宦琪
2023-03-14
问题内容

我正在使用TimeStamp类将秒转换为Day,Hours,Minutes,Seconds。我用下面的代码

public static void calculateTime(long seconds) {
        int day = (int)TimeUnit.SECONDS.toDays(seconds);        
        long hours = TimeUnit.SECONDS.toHours(seconds) - TimeUnit.SECONDS.toHours(TimeUnit.SECONDS.toDays(seconds));
        long minute = TimeUnit.SECONDS.toMinutes(seconds) - TimeUnit.SECONDS.toMinutes(TimeUnit.SECONDS.toHours(seconds));
        long second = TimeUnit.SECONDS.toSeconds(seconds) - TimeUnit.SECONDS.toSeconds(TimeUnit.SECONDS.toMinutes(seconds));

        System.out.println("Day " + day + " Hour " + hours + " Minute " + minute + " Seconds " + second);

    }

但是我没有得到正确的结果。例如,当我调用此方法时,calculateTime(3600)它给我的结果是Day 0 Hour 1 Minute 60 Seconds 3540而不是Day 0 Hour 1 Minute 0 Seconds 0

我的逻辑有什么问题? 请帮我。


问题答案:

应该像

 int day = (int)TimeUnit.SECONDS.toDays(seconds);        
 long hours = TimeUnit.SECONDS.toHours(seconds) - (day *24);
 long minute = TimeUnit.SECONDS.toMinutes(seconds) - (TimeUnit.SECONDS.toHours(seconds)* 60);
 long second = TimeUnit.SECONDS.toSeconds(seconds) - (TimeUnit.SECONDS.toMinutes(seconds) *60);

编辑 说明:

  1. 日计算是正确的,不需要解释。
  2. TimeUnit.SECONDS.toHours(seconds)将使您直接从秒转换为小时,而无需考虑已经计算的天数。减去您已经拥有的天数的小时数,即day * 24。您现在剩下了几个小时。
  3. 分钟和秒相同。您需要分别减去已经得到的小时和分钟。


 类似资料:
  • 问题内容: 如何将值从纳秒转换为秒? 这是代码段: 错误是 这是什么意思? 问题答案: 好吧,您可以除以1,000,000,000: 如果使用转换,结果将很长,因此您将失去小数精度,但保持整数精度。

  • 因此,我试图制作一个程序,可以将s从输入转换为h、m和s。到目前为止,我的代码如下所示: 好的,所以我必须将s,m,h初始化为0,因为如果不是的话,我在if语句中遇到了问题,所以我把它设置为0,因为我可以稍后更改:)好的。所以现在这个程序的问题是,如果我输入3603,我会得到这个输出:3603s=1H60M3603s,如果我输入3600,我会得到:3600s=1H60M3600s,但输出应该分别是

  • 我是Python新手,遇到了这个问题。我想创建一个程序,用户输入秒数,并将其转换为天、小时、分钟和秒。然而,例如,我希望程序在100000秒内输出1天、3小时、46分钟、40秒。然而,mine也用小数输入计算结果,比如说1.157天,其他类别也一样。任何帮助都将不胜感激,非常感谢。

  • 问题内容: 我需要将秒转换为“小时:分钟:秒”。 例如:“ 685”转换为“ 00:11:25” 我该如何实现? 问题答案: 您可以使用以下功能:

  • 我是Momentjs的新手。我试着用它把毫秒转换成小时和分钟。下面,x是毫秒 有人能帮忙吗?

  • 问题内容: 我在Microsoft SQL Server 2008R2中有一个bigint字段,其中充满了刻度线(单个刻度线代表一百纳秒或一千万分之一秒。在一毫秒内有10,000个刻度。) http://msdn.microsoft.com/zh- CN/library/system.datetime.ticks.aspx 我需要将所有记录的总和转换为Days:Hours:Minutes:Seco