用java写一个定时任务 每1个小时执行一次 使用结束时间和当前时间进行比较 如果当前时间大于结束时间 就显示过期
时间: 2024-03-06 07:49:43 浏览: 22
好的,以下是一个使用 Java 定时任务每 1 个小时执行一次的代码,并在每次执行时比较结束时间和当前时间,如果当前时间大于结束时间就显示过期:
```java
import java.util.Calendar;
import java.util.Date;
import java.util.Timer;
import java.util.TimerTask;
public class MyTimerTask extends TimerTask {
public void run() {
System.out.println("定时任务执行了!");
Date endDate = new Date(2021 - 1900, 11, 31); // 结束时间为2021年12月31日
Date now = new Date();
if(now.after(endDate)) {
System.out.println("已过期!");
}
}
public static void main(String[] args) {
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()`方法中,我们比较了结束时间和当前时间,如果当前时间晚于结束时间,就输出“已过期!”。然后,我们在`main()`方法中创建了一个`Timer`对象和一个`MyTimerTask`对象,并使用`scheduleAtFixedRate()`方法将定时任务添加到定时器中,使其每小时执行一次。
需要注意的是,Java 中`Date`的构造方法中,年份是从 1900 年开始算起的,所以我们在创建结束时间时需要将年份减去 1900。
你可以根据实际需求修改代码中的结束时间和输出语句。