Java if语句currentTimeMillis,检查特定时间是否已经过去

发布于 2024-12-06 07:12:13 字数 517 浏览 2 评论 0原文

我遇到了一个奇怪的问题。我正在尝试检查当前时间是否大于 powertimer。当我运行该方法时,即使 powerup.getPowertimer() - System.currentTimeMillis() 大于 0,if 语句也会返回 true,我通过打印结果进行了测试。

this.powertimer = System.currentTimeMillis() + 10000;
public long getPowertimer() {
    return this.powertimer;
}

if ((powerup.getPowertimer()  - System.currentTimeMillis()) > 0) {
    System.out.println(powerup.getPowertimer() - System.currentTimeMillis());
    powerup.reversePower(player);
    expired.add(powerup);
}

有谁知道如何解决这个问题?

I've ran into an odd problem. I'm trying to check if the current time is greater than powertimer. When I run the method the if-statement returns true even though powerup.getPowertimer() - System.currentTimeMillis() is greater than 0 which I tested by printing out the result.

this.powertimer = System.currentTimeMillis() + 10000;
public long getPowertimer() {
    return this.powertimer;
}

if ((powerup.getPowertimer()  - System.currentTimeMillis()) > 0) {
    System.out.println(powerup.getPowertimer() - System.currentTimeMillis());
    powerup.reversePower(player);
    expired.add(powerup);
}

Does anyone know how to fix this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

辞慾 2024-12-13 07:12:13

要检查当前时间是否“超过”了 powertimer 超时,请

if (System.currentTimeMillis() > powerup.getPowertimer()) {
    ...
}

注意,您的行:

if ((powerup.getPowertimer()  - System.currentTimeMillis()) > 0)

相当于

if (powerup.getPowertimer() > System.currentTimeMillis())
                            ^
                            |
                wrong direction of inequality

To check if current time has "passed" the powertimer timeout, you do

if (System.currentTimeMillis() > powerup.getPowertimer()) {
    ...
}

Note that your line:

if ((powerup.getPowertimer()  - System.currentTimeMillis()) > 0)

is equivalent to

if (powerup.getPowertimer() > System.currentTimeMillis())
                            ^
                            |
                wrong direction of inequality
七七 2024-12-13 07:12:13

你的减法方法是错误的。这样做:

if (System.currentTimeMillis() - powerup.getPowertimer() > 0)

永远记住这一点:

增量 = 最终 - 初始

感谢我的高中物理老师杰夫·鲍威尔(Geoff Powell)给我这个我在生活中经常使用的小宝石。

You've got the subtraction around the wrong way. Do this:

if (System.currentTimeMillis() - powerup.getPowertimer() > 0)

Always remember this:

delta = final - initial

Thanks to my high school physics teacher Geoff Powell for this little gem I have used often in my life.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文