java创建定时器

本文介绍了一个使用Java实现的定时任务示例。通过创建Timer对象并结合Calendar设置具体执行时间,实现了每天特定时间启动的任务,并每两秒重复执行的功能。代码中还包括了条件判断来决定是否继续执行任务。

**

java创建定时器

**

代码+注释

package com.lst.test;

import com.lst.run.MonitoringVideoDowload;
import lombok.SneakyThrows;

import java.util.Calendar;
import java.util.Date;
import java.util.Timer;
import java.util.TimerTask;
import java.lang.reflect.Method;

import static com.lst.utils.CommonUtils.MonitoringVideoDowload;

/**
 * @AUTHOR ()
 *
 */
public class TestTimer {
    static int count = 0;

    public static void showTimer() {
        Timer timer = new Timer();
        TimerTask task = new TimerTask() {

            @SneakyThrows
            @Override
            public void run() {
                Calendar now = Calendar.getInstance();
                int hh = now.get(Calendar.HOUR_OF_DAY);
                int mm = now.get(Calendar.MINUTE);
                if (hh < 10 && hh>17) {

                    ++count;

                    System.out.println("时间=" + new Date() + " 执行了" + count + "次"); // 1次
                } else {
//                    timer.cancel();// 停止定时器
                    System.out.println("时间已过明天继续下载"
                    );

                }
//                System.out.println("时:" + now.get(Calendar.HOUR_OF_DAY));
//                System.out.println("分:" + now.get(Calendar.MINUTE));
//                System.out.println("秒:" + now.get(Calendar.SECOND));


            }
        };

        //设置执行时间
        Calendar calendar = Calendar.getInstance();
        int year = calendar.get(Calendar.YEAR);
        int month = calendar.get(Calendar.MONTH);
        int day = calendar.get(Calendar.DAY_OF_MONTH);//每天
        //定制每天的什么时间执行程序,
        calendar.set(year, month, day, 6, 10, 00);
        Date date = calendar.getTime();
//        Timer timer = new Timer();
        System.out.println(date);

//        int period = 54 * 100000;
        int period = 2 * 1000;
        //每天的date时刻执行task,每隔2秒重复执行
        timer.schedule(task, date, period);
        //每天的date时刻执行task, 仅执行一次
//        timer.schedule(task, date);
    }

    public static void main(String[] args) {
        showTimer();
    }
}
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值