要在每天9:30和16.30两个时间定时启动程序,应该怎么用Timer定时器来实现?
解决方案 »
- java的equals和contains的区别
- Spring beans-config.xml 可否封装在jar 内?
- 求助struts1.3+spring2.5集成问题
- 该死的包的问题(急等好的解答)
- 怎样用import加入自己的类
- 拜托啦~教教我啦~我想好好学java~
- 我有一个文件名的字符串,怎么提取扩展名啊?谢谢了
- javabean的编译问题!!!!!!1
- 我在测试我.class文件时总提示这样的错误:Exception in thread "main" java.lang.noclassdefoundError:myclass
- !!!!!ORA-12638:凭证检索失败
- 用DOM4J读取XML文件
- 用java excel api读取 excel文件的时候,有密码的文件怎么读呢?
运行方法时间不等则sleep
如此循环
如果用Timer类如何实现呢?有对应的方法吗?
有一个timetask什么的
final Timer timer=new Timer(false);
timer.schedual(new TimerTask()
{ public void run()
{ Calendar now=Calendar.getInstance(); //获得当前时间
Calendar next1=Calendar.getInstance();
Calendar next2=Calendar.getInstance();
next1.set(Calendar.HOUR_OF_DAY,9);//设置钟头9点
next1.set(Calendar.MINUTE,30);//设置分钟为30
next2.set(Calendar.HOUR_OF_DAY,16);
next2.set(Calendar.MINUTE,30);
timer.schedual(new TimerTask()
{
public void run()
{//你9点半要作的事情}
},(next1.getTimeInMillis()-now.getTimeInMillis()));
//计算现在距离9点半还有多少时间.
timer.schedual(new TimerTask()
{
public void run()
{//你16点半要作的事情}
},(next2.getTimeInMillis()-now.getTimeInMillis()));
}
},0,24*60*60*1000);24小时运行一次
import java.util.*;public class Task implements ActionListener {
javax.swing.Timer time;
public Task() {
//初始化定时器,每分钟响应一次
time = new javax.swing.Timer(1000*6, this);
time.start();
} public void actionPerformed(ActionEvent arg0) {
Calendar rightNow = Calendar.getInstance();
if(rightNow.get(Calendar.HOUR_OF_DAY) == 9 ||
rightNow.get(Calendar.HOUR_OF_DAY) == 16)
{
if(Calendar.getInstance().get(Calendar.MINUTE) == 30)
//9:30或16:30执行任务计划
do_task(); }
return;
}
public void do_task() {
System.out.println("begin ");
//调用计划要运行的程序v
try{
//Runtime.getRuntime().exec("***.exe");
}catch(Exception e){}
}
public static void main(String[] args) {
Task a = new Task();
//死循环让程序不断执行
while(true);
}
}
调度一个计时器任务,使其在特定的时间执行,下面举个10秒后执行的.
int numberOfMillsecondsInTheFuture=1000;
Date timeToRun=new Date(System.currentTimeMillis()+numberOfMillsecondsInTheFuture);
Timer timer=new Timer();
timer.schedule(new TimerTask(){
public void run(){
//这里执行任务
} },timeToRun);