当前位置: 首页 > 知识库问答 >
问题:

将纳秒转换为天、小时、分钟、秒、毫秒、微秒和纳秒的JAVA

田志尚
2023-03-14

这个问题我已经研究了一段时间,但我只能得到秒数,下面是给我的说明:编写一个程序,从代表纳秒数的标准输入中读取一个非负整数。然后,程序编写一行输出,给出等效的天、小时、分钟、秒、毫秒、微秒和纳秒的数量。例如,输入为123456789123456789。则输出为:123456789123456789纳秒等于1428天、21小时、33分钟、9秒、123毫秒、456微秒和789纳秒。这是我写的:

public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    long in = sc.nextLong();
    long sec = (in / 1000000000);
    long day = (sec / (3600 * 24));
    sec -= (day * 3600 * 24);
    long hour = (sec / 3600);
    sec -= (hour * 3600);
    long min = (sec / 60);
    sec -= (min * 60);
    //these down here are wrong
    long milli = (sec * 1000);
    sec = (milli / 1000);
    long micro = ( sec * 1000000);
    sec = (micro / 1000000);
    long nano = (in % 1000000000);
    sc.close();
    System.out.println(in + " nanoseconds is equal to " + day + " day(s), " + hour + " hour(s), " + min + " minutes(s), " + sec + " second(s), " + milli + " millisecond(s), " + micro + " microsecond(s) and " + nano + " nanosecond(s).");
}

}

共有1个答案

郗浩言
2023-03-14

问题在于你计算小于秒的单位的方式--毫秒、微米和纳米。一旦达到秒-=(min*60);将等于9。然后您将这9秒转换为milli和micro。

您要做的是,在找到秒之后,您需要计算剩余的纳秒,然后将其转换为milli和micro。

sec -= (min * 60);

// remaining ns
long nano = (in % 1_000_000_000);
// ns -> milli
long milli = (nano / 1_000_000);

// remaining ns
nano = (nano % 1_000_000);
//ns -> micro
long micro = (nano / 1000);

nano = nano % 1000;

注意:如果允许您使用java库方法,那么您可以使用todaystoHours、....TimeUnit类的Tonanos。您也可以duration,但它没有tomicro(nethod。)

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

  • 问题内容: 我正在编写一个赛车应用程序,想要将大量毫秒转换为minutes:seconds.milliseconds(例如)。目前,我只是通过数学()进行运算,然后求余数并进一步除法,依此类推,但是我发现它时不时关闭1毫秒。我知道这听起来似乎没什么大不了的,但是我试图找到和的平均值,然后返回,这意味着它输入不正确,而应用程序的其余部分无法处理。 有没有一种方法使用或格式化毫秒到MM或类似的东西:s

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

  • 问题内容: 这是我的代码: 是否可以在日期格式中添加毫秒和纳秒? 问题答案: 您可以通过在末尾添加来添加毫秒数,例如格式为。 毫微秒内没有参考。通常用于性能调试,而不用于显示目的。

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

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