java闹钟程序代码
发布网友
发布时间:2022-04-27 07:53
我来回答
共3个回答
热心网友
时间:2023-09-14 02:45
搞不懂为什么要匿名提问,真的那么怕笑话,不至于吧!
import java.util.Timer;
import java.util.Date;
import java.text.SimpleDateFormat;
public class Alarm
{
public static void main(String[] args)
{
Timer timer = new Timer();
try{
timer.schele(new task(),1000,1000);
}
catch(IllegalStateException e)
{
System.out.println("时间到");
}
}
static class task extends java.util.TimerTask
{
public void run()
{
Date now = new Date();
SimpleDateFormat time = new SimpleDateFormat("HH:mm:ss");
if(time.format(now).toString.equals("23:27:00"))
this.cancel();
else
System.out.println(time.format(now));
}
}
}
热心网友
时间:2023-09-14 02:45
我用一楼的代码运行了下,发现程序到点之后并没打印时间到,而且程序也没有退出,研究了下,发现TimerTask的cancel()方法似乎不管用,而Timer的cancel则可以正常使用,所以改成现在这个样子就能够正常运行了:
public class Alarm {
public static void main(String[] args) {
Timer timer = new Timer();
timer.schele(new task(timer), 1000, 1000);//不同之处
}
static class task extends TimerTask {
Timer timer;//多了个Timer属性,用它来cancel时间调度器
task(Timer timer){
this.timer = timer;
}
public void run() {
Date now = new Date();
SimpleDateFormat time = new SimpleDateFormat("HH:mm:ss");
if (time.format(now).toString().compareTo("09:44:00") >= 0){
timer.cancel();
System.out.println("时间到");
}else
System.out.println(time.format(now));
}
}
}
热心网友
时间:2023-09-14 02:46
对,是,1楼的有问题