package control;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;
public class TimerManager {
//
Log log=Log.getLoger();
private ScheduledExecutorService scheduExec;
public long start;
public TimerManager() {
this.scheduExec = Executors.newScheduledThreadPool(2);
this.start = System.currentTimeMillis();
long oneDay = 24 * 60 * 60 * 1000;
long initDelayOne = getTimeMillis("3:00:00") - System.currentTimeMillis();
initDelayOne = initDelayOne > 0 ? initDelayOne : oneDay + initDelayOne;
long initDelayTwo = getTimeMillis("3:00:00") - System.currentTimeMillis();
initDelayTwo = initDelayTwo > 0 ? initDelayTwo : oneDay + initDelayTwo;
}
public void timerOne(){
scheduExec.scheduleWithFixedDelay(new Runnable() {
public void run() {
...
System.out.println("timerOne invoked .....");
}
},0,5000, TimeUnit.MILLISECONDS);
}
public void timerTwo(){
scheduExec.scheduleAtFixedRate(new Runnable() {
public void run() {
...
System.out.println("timerTwo invoked .....");
}
},2000,5000,TimeUnit.MILLISECONDS);
}
/**
* @param time "HH:mm:ss"
* @return
*/
private static long getTimeMillis(String time) {
try {
DateFormat dateFormat = new SimpleDateFormat("yy-MM-dd HH:mm:ss");
DateFormat dayFormat = new SimpleDateFormat("yy-MM-dd");
Date curDate = dateFormat.parse(dayFormat.format(new Date()) + " " + time);
return curDate.getTime();
} catch (ParseException e) {
e.printStackTrace();
}
return 0;
}
public static void main(String[] args) {
TimerManager test = new TimerManager();
test.timerOne();
}
}