package com.cloud.count.listener;
|
|
import java.util.Calendar;
|
import java.util.Date;
|
import java.util.Timer;
|
|
public class TimerManager {
|
|
private static final long PERIOD_DAY = 24 * 60 * 60 * 1000;
|
|
public TimerManager() {
|
Calendar calendar = Calendar.getInstance();
|
/*** 定制每日6:00执行方法 ***/
|
calendar.set(Calendar.HOUR_OF_DAY, 6);
|
calendar.set(Calendar.MINUTE, 0);
|
calendar.set(Calendar.SECOND, 0);
|
Date date=calendar.getTime(); //第一次执行定时任务的时间
|
System.out.println(date);
|
System.out.println("before 方法比较:"+date.before(new Date()));
|
//如果第一次执行定时任务的时间 小于 当前的时间
|
//此时要在 第一次执行定时任务的时间 加一天,以便此任务在下个时间点执行。如果不加一天,任务会立即执行。循环执行的周期则以当前时间为准
|
if (date.before(new Date())) {
|
date = this.addDay(date, 1);
|
System.out.println(date);
|
}
|
Timer timer = new Timer();
|
CountInitTask task = new CountInitTask();
|
|
timer.schedule(task, date, PERIOD_DAY);
|
}
|
|
public Date addDay(Date date, int num) {
|
Calendar startDT = Calendar.getInstance();
|
startDT.setTime(date);
|
startDT.add(Calendar.DAY_OF_MONTH, num);
|
return startDT.getTime();
|
}
|
}
|