當前位置:編程學習大全網 - 編程語言 - java的系統時間,怎麽計算從現在到淩晨還剩下多少時間

java的系統時間,怎麽計算從現在到淩晨還剩下多少時間

import java.util.Calendar;import java.util.Date;import java.util.Timer;import javax.servlet.ServletContextEvent;import javax.servlet.ServletContextListener;public class HandleTimerTask implements ServletContextListener { private Timer timer = null; //定時器 private static int DOWNlOAD_HOUR = 0; //執行任務開始時間(時) private static int DOWNlOAD_MINUTE = 0; //執行任務開始時間(分) private static int DOWNlOAD_SECOND = 0; //執行任務開始時間(秒) private long delay; //延時時間值(當前系統時間到下載時間之間的時間差毫秒數) public void contextInitialized(ServletContextEvent event) { init();//初始化參數 timer = new Timer(true);//創建Timer對象 //定時執行程序 timer.schedule(new Handle(event.getServletContext()),delay,24*60*60*1000);//調用Handle()類(即每天要執行的任務),delay表示延遲毫秒數,0,24*60*60*1000表示每隔壹天執行壹次任務,60*60*1000表示壹個小時; } public void contextDestroyed(ServletContextEvent event) { timer.cancel(); } /** * 初始化參數 * @return */ public void init(){ //聲明壹個Calendar對象 Calendar cal = Calendar.getInstance(); //設置時間 cal.set(Calendar.HOUR_OF_DAY, DOWNlOAD_HOUR); cal.set(Calendar.MINUTE, DOWNlOAD_MINUTE); cal.set(Calendar.SECOND, DOWNlOAD_SECOND); Date date = new Date(); //獲取設定的時間 date = cal.getTime(); //聲明當前時間 Date now = new Date(); //獲取設定的時間和當前的時間差(毫秒數) long interval = date.getTime() - now.getTime(); //如果當前時間大於下載時間,則將下載時間設置為下壹個下載時間 if (interval < 0) { cal.add(Calendar.DAY_OF_MONTH, 1);//將天數加1 date = cal.getTime(); //獲取設定的時間和當前的時間差(毫秒數) interval = date.getTime() - now.getTime(); } this.startTime = date;//初始化開始下載時間 this.delay = interval;//初始化當前時間到下載時間之間的時間差 }}public class Handle extends TimerTask { private ServletContext context = null; Timer timer = null; //查詢任務定時器 public Handle(ServletContext context) { this.context = context; } /** * 開始執行 */ public void run() { //開始執行 context.log("開始執行!"); }}用延遲時間可以實現,添加了壹個init()方法用來計算延時數,不管什麽時候啟動服務,都可以根據當前系統時間和執行任務的開始時間計算出延時時間毫秒數。雖然沒有分,還是希望能幫助妳。 ^_^

  • 上一篇:嵌入式就業前景分析
  • 下一篇:機器人足球有前景嗎?中國未來機器人發展如何?
  • copyright 2024編程學習大全網