获取一天的总小时数

Get total of hours on a day

使用 Java,我正在将整数 DAYS 解析为 HOURS。

看起来像这样:

float hours = myvardays*24;

有效,但常量 24 是 magic number,最好避免使用。

Calendar、Date 或任何其他常数是否有任何常量来获得一天中的总小时数 (24)?或者也许是一种方法?

我只对一般的 24 小时制感兴趣,忽略了导致其他日长的异常情况,例如夏令时 (DST)。

我不知道 Java 标准库中有什么能完全满足您的需求。

但是,如果您的计算中有静态数字,则确实没有理由删除它们。除非你觉得他们将来会改变或者需要在很多地方更新,如果应用程序的需求发生变化(例如在火星上,一天中的小时数可能不同)

有人可能会说不清楚到底发生了什么(为什么是 24,哦对...)。您可能想要制作一个小的 class 包含您自己的名称清晰的常量,只是为了使代码更具可读性。

例如:

public final class TimeIntervals {
    // ...
    public static final int HOURS_IN_DAY = 24;
    public static final int DAYS_IN_WEEK = 7;
    //...
}

然后用作

float hours = days * TimeIntervals.HOURS_IN_DAY;

让我们不要重新发明东西,这一切都融入了 JDK:

Java 8 岁及以后

使用Duration.ofDays with toDays方法。

long hours = Duration.ofDays(myvardays).toHours(); // Java 8+

Java 5、6 和 7

使用 TimeUnit 枚举。

long hours = TimeUnit.DAYS.toHours(myvardays); // Java 5+

在 JDK 8 中,您可以在 Duration class 中执行时间单位之间的转换。

示例:

Duration.ofDays(1).toHours() //24hs
Duration.ofHours(1).toMinutes() //60 minutes