1. 程式人生 > >java Timer 定時每天淩晨0點執行任務

java Timer 定時每天淩晨0點執行任務

nth 任務 定時任務 執行 auth oid ddd imp java

import java.util.TimerTask;  
/** 
 * 執行內容 
 * @author admin_Hzw 
 * 
 */  
public class Task extends TimerTask {  
    public void run() {  
        System.out.println("我有一頭小毛驢!");   
    }  
import java.util.Calendar;  
import java.util.Date;  
import java.util.Timer;  
  
/** 
 * 任務管理 
 * @author admin_Hzw 
 * 
 
*/ public class TimerManager { /** * @param args */ 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(new Date())) { date
= this.addDay(date, 1); } Timer timer = new Timer(); Task task = new Task(); //安排指定的任務在指定的時間開始進行重復的固定延遲執行。 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(); } }

java Timer 定時每天淩晨0點執行任務