gpt4 book ai didi

java - Java 中的计时器 - 分钟/小时递减的几个问题

转载 作者:行者123 更新时间:2023-11-30 05:56:35 25 4
gpt4 key购买 nike

我正在开发一个Java倒计时器。我对 Java 完全陌生,尽管之前学过一些 C++,所以它并不是全新的。我在这方面遇到了问题 - 任何人都可以轻松看出我在逻辑上做错了什么吗?

发生了什么:

在运行时,如果您在小时中输入 23,请将分钟留空并输入 5 秒 - 5 秒应计为 0 - 分钟应为 59,小时为 22。但是,一旦 5 秒过去所有数字都归零。

如果在输入框中输入 23 小时 1 分钟和 5 秒 - 当 5 过去后,它会更改为 22 小时 59 分 59 秒,所以我知道它已经快到了(只是希望我可能错过了一些愚蠢的事情) .

最后一个逻辑问题 - 例如,如果我输入 30 分 5 秒,当 5 秒过去后,分钟将变为 29,秒将变为 59 并继续倒计时,但小时将变为 -1。下面的代码 - 抱歉,帖子很长,但想描绘场景 - 谢谢 - Colly

Integer sec = new Integer (seconds.getText ());
Integer min = new Integer (minutes.getText ());
Integer hr = new Integer (hours.getText ());
int temp1 = sec.intValue ();
int temp2 = min.intValue ();
int temp3 = hr.intValue();

temp1--;
if (temp1 == -1 )
{
temp1 = 59;
temp2--;
if (temp2 == 0 && temp3 != 0)
{
temp2 = 59;
}
temp3--;
}
hr = new Integer (temp3);
sec = new Integer (temp1);
min = new Integer (temp2);
hours.setText (hr.toString ());
minutes.setText (min.toString ());
seconds.setText (sec.toString ());
if (seconds.getText ().length () == 1)
seconds.setText ("0" + seconds.getText ());

最佳答案

请不要手动计算时间,写起来很痛苦,读起来也很痛苦。我什至没有提到调试它的感觉。

Calendar 类可能很有趣:

Calendar c = Calendar.getInstance();
c.clear(); // To reset all fields
c.set(Calendar.HOUR_OF_DAY, 23);
c.set(Calendar.MINUTE, 0);
c.set(Calendar.SECOND, 5);

c.add(Calendar.SECOND, -1);

而且您不必担心计数。

关于java - Java 中的计时器 - 分钟/小时递减的几个问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6943313/

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