Calendar针对于相隔一段时间自动执行的简单应用

来源:互联网 发布:蓝光原盘播放器软件 编辑:程序博客网 时间:2024/04/28 23:40

首先有一个extends TimerTask的方法

import java.util.Date;import java.util.TimerTask;/**   * 类说明    *   * @author nmj * @email  bjahqj@163.com * @date 2017年5月17日  新建   */public class extendsTimerTask extends TimerTask{    /***     * 执行的线程     */    @Override    public void run() {        // TODO Auto-generated method stub        System.out.println(new Date()+"成功。");    }}

写TimerManager类来定时执行上面的extendsTimerTask

import java.util.Calendar;import java.util.Date;import java.util.Timer;import com.sun.jmx.snmp.tasks.Task;public class TimerManager {    private static final long PERIOD_DAY = 24 * 60 * 60 * 1000;    //num为几点执行    public TimerManager(int num) {        Calendar calendar = Calendar.getInstance();        calendar.set(Calendar.HOUR_OF_DAY, num);// 早8点        calendar.set(Calendar.MINUTE, 00);        calendar.set(Calendar.SECOND, 00);        Date date = calendar.getTime();// 第一次执行的时间        // 如果第一次设定日期,小于当前时间,就在此时加一天,如果不加,会自动执行。        // if (date.before(new Date())) {        // date = this.addDay(date, 1);        // }        Timer timer = new Timer();        // 执行继承extends TimerTask的类        extendsTimerTask ett = new extendsTimerTask();        // 相隔执行的时间        timer.schedule(ett, date, PERIOD_DAY);    }    public Date addDay(Date date, int num) {        Calendar startDT = Calendar.getInstance();        startDT.setTime(date);        startDT.add(Calendar.DAY_OF_MONTH, num);        return startDT.getTime();    }    public static void main(String[] args) {        //填写8即为8点自动执行        new TimerManager(8);    }}
阅读全文
0 0
原创粉丝点击