今日收获 理解并学习了如何使用定时器完成设置每天早上八点程序执行一次 可自行扩展:
public void TimerTaskTest{
// 创建一个定时器任务TimerTask timerTask = new TimerTask() {@Overridepublic void run() {/*写业务逻辑主体system.out.prinln("早上八点叫我起床");*/
}
};//设置执行时间Calendar calendar = Calendar.getInstance();int year = calendar.get(Calendar.YEAR);int month = calendar.get(Calendar.MONTH);int day = calendar.get(Calendar.DAY_OF_MONTH);//每天//定制每天的08:00:00执行,calendar.set(year, month, day, 8, 00, 00);Date date = calendar.getTime();// 创建定时器Timer timer = new Timer();//设置的定时器 period(每隔多长时间运行几次) 单位毫秒timer.schedule(timerTask, date);
}
我感觉 其实和最原始的定时器没什么区别 应该是通过calender这一部分把你设置的时间和现在从系统获取的时间进行减法 求出还有多长时间到你设定的时间 然后利用定时器 延时这么长的时间执行 不过我有一个疑问 计算时间差 是每天执行一次还是只有你第一次执行的时候只计算一次 那么这样时间是不是会越来越有偏差呢?