gpt4 book ai didi

java - 在任何 Java TimeUnit 中表示 24 小时

转载 作者:行者123 更新时间:2023-11-29 04:25:40 26 4
gpt4 key购买 nike

如果我的时间单位是秒类型,并且在 86400/20 = 4320 个周期后周期持续时间为 20 秒,则 24 小时过去了。

long numberOfCyclesToReach24Hours(long cycleDuration, TimeUnit unit) {
// if I knew that unit is of type seconds I could
return TimeUnit.HOURS.toSeconds(24) / cycleDuration
// but if it is of type MILLISECONDS for example I have to
//return TimeUnit.HOURS.toMillis(24) / cycleDuration
}

这个问题是否有一个优雅的解决方案,或者我真的必须切换所有类型的大小写?我知道这种情况不会经常发生,但如果将来引入新的 TimeUnit 类型,则必须调整代码 :)

我也在考虑使用 TimeUnit.values 方法并依赖于返回类型的顺序,并通过检查其中输入单元的位置来了解哪个常量 (1000L , 60L 等)我可以在没有任何 toSeconds, toMillis 等方法的情况下自行计算循环数,但这甚至更丑陋而且真的很奇怪:)

最佳答案

听起来您只是在寻找 convert方法:

Converts the given time duration in the given unit to this unit.

return unit.convert(24, TimeUnit.HOURS) / cycleDuration;

关于java - 在任何 Java TimeUnit 中表示 24 小时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46478613/

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