Java定时任务的定时表达式实现中,我们可以看到一个例子,展示了如何在每天早晨6点,以及每个月的1号和15号执行特定的任务。下面的代码片段展示了如何使用`java.util.Timer`和`TimerTask`类来实现这个需求:java public class MyTimer { public static void main(String[] args) { Timer timer1 = new...
java定时任务的定时表达式,每天早晨6:是每个月的1号和15号执行任务
Java定时任务的定时表达式实现中,我们可以看到一个例子,展示了如何在每天早晨6点,以及每个月的1号和15号执行特定的任务。下面的代码片段展示了如何使用`java.util.Timer`和`TimerTask`类来实现这个需求:
java
public class MyTimer {
public static void main(String[] args) {
Timer timer1 = new Timer();
// 每天早上6:30执行Task1
timer1.schedule(new Task1(), getTargetDate(0, 6, 30, 0), 24 * 60 * 60 * 1000);
// 每月1号执行Task2(类型1)
timer1.schedule(new Task2(1), getTargetDate(1, 6, 30, 0));
// 每月15号执行Task2(类型2)
timer1.schedule(new Task2(2), getTargetDate(15, 6, 30, 0));
}
// ...省略其他方法...
public static Date getTargetDate(int day, int hour, int minute, int second) {
// ...省略日期计算逻辑...
}
// ...省略Task1和Task2类的内容...
}
这段代码的核心是通过`schedule`方法,设置`TimerTask`在特定的时间执行。`getTargetDate`方法用于计算下次执行任务的具体日期,根据不同日期条件进行调整。通过`Task2`的类型参数,我们可以区分每月1号和15号的任务。当任务执行完毕后,会取消当前任务并重新安排在下一次指定日期。2024-08-14