package util;
import java.text.NumberFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Timer;
import java.util.TimerTask;
public class TimerPeriod {
public static void main(String[] args) {
try {
new TimerPeriod().timer() ;
} catch (ParseException e) {
e.printStackTrace();
}
}
public int timer() throws ParseException {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//
SimpleDateFormat cudate = new SimpleDateFormat("yyyy-MM-dd");
Date firstTime = sdf.parse(cudate.format(new Date()) + " " + "00:01:01");//
TimerTask task = new TimerTask() {
@Override
public void run() {
new Thread(new test("开始执行")).start();
}
};
Timer timer = new Timer();
System.out.println(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date())+" 第一次执行在"+getNum(getTime(firstTime)) +"("+getTime(firstTime)+"ms)小时后");
timer.schedule(task, getTime(firstTime), 86400000);//24小时循环一次
return 1;
}
public String getNum(long num1 ) {
NumberFormat numberFormat = NumberFormat.getInstance();
numberFormat.setMaximumFractionDigits(5);
return numberFormat.format((double) num1/1000/60/60 );
}
public long getTime(Date firsttime) throws ParseException {
Date date=new Date();
long ltime = 0;
if( date.getTime()>firsttime.getTime()) {
ltime = firsttime.getTime()+(1*24*60*60*1000)-date.getTime();
}else {
ltime = firsttime.getTime()-date.getTime();
}
return ltime;
}
class test implements Runnable {
private String params1;
public test(String params1) {
this.params1=params1;
}
@Override
public void run() {
System.out.println(params1+new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
}
}
}