代码改变世界

Java 定时任务

2013-12-31 17:29  _cha1R  阅读(158)  评论(0编辑  收藏  举报
import java.util.Calendar;
import java.util.Date;
import java.util.Timer;
import java.util.TimerTask;

public class TestTime {

 //时间间隔
 private static final long PERIOD_DAY =  60 * 60 *24 *1000;
 
 public void dd() {
  Calendar calendar = Calendar.getInstance(); 
       
  /*** 定制每日2:00执行方法 ***/

  calendar.set(Calendar.HOUR_OF_DAY, 17);
  calendar.set(Calendar.MINUTE, 15);
  calendar.set(Calendar.SECOND, 59);
  
  Date date=calendar.getTime(); //第一次执行定时任务的时间
  
  //如果第一次执行定时任务的时间 小于 当前的时间
  //此时要在 第一次执行定时任务的时间 加一天,以便此任务在下个时间点执行。如果不加一天,任务会立即执行。
  if (date.before(new Date())) {
      date = this.addDay(date, 1);
  }
  
  Timer timer = new Timer();
  
  TimerTask  task = new TimerTask() {
 
 @Override
 public void run() {
  // TODO Auto-generated method stub
  System.out.println("fdsafsafa");
 }
};
  //安排指定的任务在指定的时间开始进行重复的固定延迟执行。
  timer.schedule(task,date,PERIOD_DAY);
 }
 
 
 public void cc() {
   Calendar calendar = Calendar.getInstance(); 
        
   /*** 定制每日2:00执行方法 ***/

   calendar.set(Calendar.HOUR_OF_DAY, 17);
   calendar.set(Calendar.MINUTE, 15);
   calendar.set(Calendar.SECOND, 58);
   
   Date date=calendar.getTime(); //第一次执行定时任务的时间
   
   //如果第一次执行定时任务的时间 小于 当前的时间
   //此时要在 第一次执行定时任务的时间 加一天,以便此任务在下个时间点执行。如果不加一天,任务会立即执行。
   if (date.before(new Date())) {
       date = this.addDay(date, 1);
   }
   
   Timer timer = new Timer();
   
   TimerTask  task = new TimerTask() {
  
  @Override
  public void run() {
   // TODO Auto-generated method stub
   System.out.println("vv");
  }
 };
   //安排指定的任务在指定的时间开始进行重复的固定延迟执行。
   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();
 }
 
 public static void main(String arg[]){
  TestTime tt =  new TestTime();
  tt.dd();
  tt.cc();
 }
}

 

.