java - 如何连续读取时间?

标签 java loops clock

我正在尝试制作一个简单的闹钟作为我的第一个 Java 项目。但是,我无法让我的代码连续读取时间。我只是在 java 中使用 simpleclock 东西,现在我只需要担心小时和分钟。

我想了解如何更新我的“int hour”和“int minute”。我正在考虑读取无限 while 循环中的变量。

感谢任何帮助,谢谢!

Calendar now= Calendar.getInstance();
int hour = now.get(Calendar.HOUR_OF_DAY);
int minute=now.get(Calendar.MINUTE);

int k=1;
while (k==1) {

    System.out.println(hour);
    System.out.println(minute);


}

最佳答案

你应该为此使用一个线程而不是不断地打印出时间。如果这是您(最有可能)需要的,请参阅上面的帖子;但是,为了了解您做错了什么,这里有一个解释。

随着时间的推移,您不会更新小时和分钟变量。

例如,如果您在 2:52 运行此程序,您进入 while 循环之前,小时最初为 2,分钟最初为 52。然后,一旦您进入 while 循环循环,小时=2,分钟=52,永远不会改变。

换句话说,一旦您进入 while 循环的范围,如 {} 所示,您将不会运行while 循环上方的前三个语句再次出现。

此外,由于 while 循环将评估一个条件,您只需将 k==1 技巧替换为 true,该条件将始终评估为真的。两种方式是等价的,但后者更优雅

解决方法:

while (true) {

Calendar now= Calendar.getInstance();
int hour = now.get(Calendar.HOUR_OF_DAY);
int minute=now.get(Calendar.MINUTE);

System.out.println(hour);
System.out.println(minute);

}

关于java - 如何连续读取时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20766090/

相关文章:

javascript - 更新javascript中事件函数中的全局变量

c++ - 为什么我在使用基于clock()的timer MACRO时会得到一个负值?

java - BearerTokenAccessDeniedHandler 类定义未找到

java - 拥有线程对象锁与类锁

java - 声音在 Android 模拟器中播放,但在我的 G1 上不播放

javascript - 如何计算在 Javascript 中 for 循环可以运行的最大次数?

java方法语句以: 'return new' (Confusion regarding anonymous classes)开头

java - 项目未正确添加到 arrayList

time - 两台远程计算机之间的(时钟)同步

datetime - Pyspark:将 12 小时制的字符串日期时间转换为 24 小时制的日期时间(时区更改)