天天看點

Java原生實作定時器

public static void main(String[] args) {

//新加定時器

//這個方法schedule(TimerTask task, Date firstTime, long period)

//獲得當天的日期

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");

Date date = new Date();

//定義開始時間字元

String timeStr = "15:27:00";

timeStr = sdf.format(date)+" "+timeStr;

//獲得當天的指定時間的date對象

sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

try{

date = sdf.parse(timeStr);

//判斷今天的執行時間是否已經過去,如果過去則改為明天

if(date.getTime()

date = new Date(date.getTime()+24*60*60*1000);
   
  }           

}catch(Exception e){

e.printStackTrace();

}

Timer timer = new Timer();

//timer.schedule(new testTask(), date, 246060*1000);

timer.schedule(new testTask(),date,246060*1000);

while(true){

try{

int ch = System.in.read();
if(ch-'c'==0){
 timer.cancel();
}
           

catch(Exception e){

e.printStackTrace();           

//new roomdhtranSys().commoneMethod();

//System.out.println("結束!");

package com;

import java.text.SimpleDateFormat;

import java.util.Date;

import java.util.TimerTask;

public class testTask extends TimerTask {

public void run(){

new roomdhtranSys().commoneMethod();