用java写一个定时任务 每1个小时执行一次 使用结束时间和当前时间进行比较 如果当前时间大于结束时间 就显示过期 不要用到主方法
时间: 2024-03-06 13:49:31 浏览: 68
好的,以下是一个使用Java定时任务每1个小时执行一次的代码,并在每次执行时比较结束时间和当前时间,如果当前时间大于结束时间就显示过期,不使用主方法:
```java
import java.util.Timer;
import java.util.TimerTask;
import java.util.Date;
public class MyTimerTask extends TimerTask {
public void run() {
System.out.println("定时任务执行了!");
Date endDate = new Date(2021, 12, 31); // 结束时间为2021年12月31日
Date now = new Date();
if(now.after(endDate)) {
System.out.println("已过期!");
}
}
}
Timer timer = new Timer();
MyTimerTask task = new MyTimerTask();
// 每小时执行一次
long delay = 0;
long period = 60 * 60 * 1000;
timer.scheduleAtFixedRate(task, new Date(), period);
```
上面的代码中,我们创建了一个`MyTimerTask`类,继承了`TimerTask`类,并在其中实现了`run()`方法。在`run()`方法中,我们比较了结束时间和当前时间,如果当前时间晚于结束时间,就输出“已过期!”。然后,我们创建了一个`Timer`对象和一个`MyTimerTask`对象,并使用`scheduleAtFixedRate()`方法将定时任务添加到定时器中,使其每小时执行一次。
这种方法不需要使用主方法,你可以将它作为一个单独的类文件运行。
阅读全文