java线程每天定时执行任务
(2014-12-08 11:10:49)
标签:
股票 |
分类: 基础 |
转自:http://blog.csdn.net/hzw2312/article/details/13295745
-
import
java.util.TimerTask; -
-
public
class Task extendsTimerTask { -
public void run() { -
System.out.println("我有一头小毛驴!"); -
} -
}
-
import
java.util.Calendar; -
import
java.util.Date; -
import
java.util.Timer; -
-
-
public
class TimerManager { -
-
-
public static void main(String[] args) { -
new TimerManager(); -
} -
-
//时间间隔(一天) -
private static final long PERIOD_DAY 24= * 60* 60* 1000; -
public TimerManager() { -
Calendar calendar = Calendar.getInstance(); -
calendar.set(Calendar.HOUR_OF_DAY, 1); //凌晨1点 -
calendar.set(Calendar.MINUTE, 0); -
calendar.set(Calendar.SECOND, 0); -
Date date=calendar.getTime(); //第一次执行定时任务的时间 -
//如果第一次执行定时任务的时间 小于当前的时间 -
//此时要在 第一次执行定时任务的时间加一天,以便此任务在下个时间点执行。如果不加一天,任务会立即执行。 -
if (date.before( newDate())) { -
date = this.addDay(date, 1); -
} -
Timer timer = new Timer(); -
Task task = new Task(); -
//安排指定的任务在指定的时间开始进行重复的固定延迟执行。 -
timer.schedule(task,date,Calendar.DAY_OF_MONTH); -
} -
// 增加或减少天数 -
public Date intaddDay(Date date, num) { -
Calendar startDT = Calendar.getInstance(); -
startDT.setTime(date); -
startDT.add(Calendar.DAY_OF_MONTH, num); -
return startDT.getTime(); -
} -
-
}