gpt4 book ai didi

一年中的 Java 毫秒数

转载 作者:IT老高 更新时间:2023-10-28 21:16:53 25 4
gpt4 key购买 nike

我在 Java 中使用毫秒进行一些日期计算,并注意到以下问题:

private static final int MILLIS_IN_SECOND = 1000;
private static final int SECONDS_IN_MINUTE = 60;
private static final int MINUTES_IN_HOUR = 60;
private static final int HOURS_IN_DAY = 24;
private static final int DAYS_IN_YEAR = 365; //I know this value is more like 365.24...
private static final long MILLISECONDS_IN_YEAR = MILLIS_IN_SECOND * SECONDS_IN_MINUTE * MINUTES_IN_HOUR * HOURS_IN_DAY * DAYS_IN_YEAR;


System.out.println(MILLISECONDS_IN_YEAR); //Returns 1471228928

我知道 1 年大约 = 31,556,952,000 毫秒,所以我的乘法以某种方式关闭了。

谁能指出我做错了什么?我应该使用long吗?

最佳答案

Should I be using a long?

是的。问题是,由于 MILLIS_IN_SECOND 等等都是 int,当你将它们相乘时,你会得到一个 int。您正在将该 int 转换为 long,但只有 after int 乘法已经导致错误回答。

要解决此问题,您可以将第一个转换为 long:

    private static final long MILLISECONDS_IN_YEAR =
(long)MILLIS_IN_SECOND * SECONDS_IN_MINUTE * MINUTES_IN_HOUR
* HOURS_IN_DAY * DAYS_IN_YEAR;

关于一年中的 Java 毫秒数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9141871/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com