定时任务(Java)

//指定延迟时间执行定时任务
public class TimeWork
{
Timer timer;

public TimeWork(int time)
{
timer =new Timer();
timer.schedule(new TimerWork(),time *1000);
}

public static void main(String[] args) {
System.out.println("timer begin....");
System.out.println("系统自动摧毁计划将在10秒后执行");
new TimeWork(10);
}

public class TimerWork extends TimerTask
{
public void run(){
System.out.println("Time's up!!!");
System.out.println("系统以摧毁");
}
}

}


//----------------------------------------------------------------------------------------------




//在指定时间执行定时任务
public class ZDTime {
Timer timer;

public ZDTime() {
Date time = getTime();
System.out.println("指定时间 Time" + time);
timer = new Timer();
timer.schedule(new ZDTimes(), time);
}

//到11点执行线程任务
public Date getTime() {
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.HOUR_OF_DAY, 11);
calendar.set(Calendar.MINUTE, 00);
calendar.set(Calendar.SECOND, 00);
Date time = calendar.getTime();
return time;
}

public class ZDTimes extends TimerTask {
@Override
public void run() {
System.out.println("指定时间摧毁目标");
}
}

public static void main(String[] args) {
new ZDTime();
}
}

//----------------------------------------------------------------------------------------------


//时间已经超过啦不执行或者换成明天执行
public class LaterTime
{
public void timeRun(){
//一天的毫秒数
long msec = 24*3600*1000;
//规定的每天时间。。运行
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd 12:00:00");
//首次运行时间
try {
Date fristStartTime =new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(sdf.format(new Date()));
//如果今天时间已过 首次运行时间就改为明天
if(System.currentTimeMillis()>fristStartTime.getTime())
{
fristStartTime=new Date(fristStartTime.getTime()+msec);
}
Timer timer=new Timer();
TimerTask task=new TimerTask() {
@Override
public void run() {
System.out.println("定时任务执行");
}
};
//以每24小时执行一次
timer.schedule(task,fristStartTime,msec);
} catch (Exception e) {
e.printStackTrace();
}

}

public static void main(String[] args) {
new LaterTime().timeRun();
}
}
原文地址:https://www.cnblogs.com/LQ970811/p/12175086.html