java设置代码定期执行,不是执行一次就结束,而是按周期重复执行。例如每天的某个时刻,或者每周的某个时刻周期执行。
public void doScheduler(){
final long PERIOD_DAY = 24 * 60 * 60 * 1000;
final long PERIOD_WEEK = 7 * 24 * 60 * 60 * 1000;
long period = PERIOD_DAY; //间隔时间,默认每天执行
int add_days = 1;
Timer timer = new Timer();
Calendar calendar = Calendar.getInstance();
if (每周执行) {
calendar.set(Calendar.DAY_OF_WEEK, 星期几);
period = PERIOD_WEEK; //每周执行
add_days = 7;
}
calendar.set(Calendar.HOUR_OF_DAY, 小时);
calendar.set(Calendar.MINUTE, 分钟);
calendar.set(Calendar.SECOND, 秒);
Date date = calendar.getTime();//第一次执行定时任务的时间
//如果第一次执行定时任务的时间 小于当前的时间
//此时要在 第一次执行定时任务的时间加add_days天,以便此任务在下个时间点执行。如果不加add_days天,任务会立即执行
if (date.before(new Date())) {
date = this.addDay(date, add_days);
}
//安排指定的任务在指定的时间