今日收获 理解并学习了如何使用定时器完成设置每天早上八点程序执行一次 可自行扩展:
public void TimerTaskTest{
// 创建一个定时器任务
TimerTask timerTask = new TimerTask() {
@Override
public 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这一部分把你设置的时间和现在从系统获取的时间进行减法 求出还有多长时间到你设定的时间 然后利用定时器 延时这么长的时间执行 不过我有一个疑问 计算时间差 是每天执行一次还是只有你第一次执行的时候只计算一次 那么这样时间是不是会越来越有偏差呢?