java定时执行(设置每天几点执行一次)

今日收获 理解并学习了如何使用定时器完成设置每天早上八点程序执行一次 可自行扩展:

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这一部分把你设置的时间和现在从系统获取的时间进行减法  求出还有多长时间到你设定的时间 然后利用定时器 延时这么长的时间执行 不过我有一个疑问 计算时间差 是每天执行一次还是只有你第一次执行的时候只计算一次  那么这样时间是不是会越来越有偏差呢?

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值