public class KQTaskManager { private static final long PERIOD_DAY = 1000 * 60*60*24;
public KQTaskManager(String hour) { Calendar cal = Calendar.getInstance(); cal.set(Calendar.HOUR_OF_DAY, Integer.valueOf(hour)); cal.set(Calendar.MINUTE, 0); cal.set(Calendar.SECOND, 0); Date date = cal.getTime(); // 如果第一次执行定时任务的时间 小于 当前的时间 // 此时要在 第一次执行定时任务的时间 加一天,以便此任务在下个时间点执行。如果不加一天,任务会立即执行 if (date.before(new Date())) { date = this.addDay(date, 1); } Timer timer = new Timer(); // 将任务实例化 KQTask task = new KQTask(); // 将任务装载到任务调度中 System.out.println("将任务装载到任务调度中!!"); timer.schedule(task, date, PERIOD_DAY); }
// 增加减少天数 public Date addDay(Date date, int num) { Calendar cal = Calendar.getInstance(); cal.setTime(date); cal.add(Calendar.DAY_OF_MONTH, num); return cal.getTime(); } }