如何使用java计算每分钟完成的操作?

bbuxkriu  于 2021-06-29  发布在  Java
关注(0)|答案(1)|浏览(415)

**结束。**此问题需要详细的调试信息。它目前不接受答案。
**想改进这个问题吗?**更新问题,使其成为堆栈溢出的主题。

11天前关门了。
改进这个问题
我正在编写一个自己的应用程序来帮助runescape 3拖缆通过dps轮换显示来教育他们的观众,我想实现一个功能,即apm(每分钟的操作数),也就是说,一分钟内按下的按键(热键)数,我正在做的是,有一个自动取款机 LocalTime 当线程开始时,每5秒它应该显示一次apm,但我猜我的公式是不正确的。
当前公式为: LocalTime apm = Main.keysPressed.size() / (LocalTime.now().minus(Main.apmLocalTime); 即:计数器/(当前时间-开始时间)
问题是,.minus()需要一个temporalunit作为参数,我完全迷路了。
有人能帮我得到这个公式吗。

f87krz0w

f87krz0w1#

热释光;博士

actionsCount / Duration.between( start , Instant.now() ).toMinutes()

java.time.instant文件

使用 Instant 追踪一个瞬间,而不是 LocalTime . Instant 表示一个时刻,时间线上的一个点,如utc所示。该类解析为纳秒,但当前的传统硬件时钟将捕获当前时刻限制为微秒或毫秒。
这个 LocalTime 类仅表示一天中的一个时间,没有日期和时区的上下文,也没有utc的偏移量。所以这个类不能代表一个时刻。
使用 Duration 类,使您的代码更易于自文档化。

Instant start = Instant.now() ;
…
Duration elapsed = Duration.between( start , Instant.now() ) ;
long minutesElapsed = elapsed.toMinutes() ;  // Get a count of whole minutes in total span of time. 
long actionsPerMinute = ( actionsCount / minutesElapsed ) ;

提示:通常在java中,我们希望使用更通用的接口和超类,而不是更具体的类,但在java.time中,情况恰恰相反。在java.time中,我们希望使用特定的具体类,因为框架程序员在文档中告诉我们这样做。因此,如果您的ide或编译器建议 Temporal 例如,按照javadoc查看实现类的列表,例如 Instant .

相关问题