获取一天的总小时数
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
使用 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