liuxiaolong
2019-11-07 2f3e3ec2c0cad87eab8a6d170caffc06a4e11c2d
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
package com.cloud.count.listener;
 
import java.util.Calendar;
import java.util.Date;
import java.util.Timer;
 
public class TimerManager {
 
    private static final long PERIOD_DAY = 24 * 60 * 60 * 1000;
 
    public TimerManager() {
        Calendar calendar = Calendar.getInstance();
        /*** 定制每日6:00执行方法 ***/
        calendar.set(Calendar.HOUR_OF_DAY, 6);
        calendar.set(Calendar.MINUTE, 0);
        calendar.set(Calendar.SECOND, 0);
        Date date=calendar.getTime(); //第一次执行定时任务的时间
        System.out.println(date);
        System.out.println("before 方法比较:"+date.before(new Date()));
        //如果第一次执行定时任务的时间 小于 当前的时间
        //此时要在 第一次执行定时任务的时间 加一天,以便此任务在下个时间点执行。如果不加一天,任务会立即执行。循环执行的周期则以当前时间为准
        if (date.before(new Date())) {
            date = this.addDay(date, 1);
            System.out.println(date);
        }
        Timer timer = new Timer();
        CountInitTask task = new CountInitTask();
 
        timer.schedule(task, 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();
    }
}