一个java定时器如何实现?具体需求如下。小弟写了两个定时器,但人家要求写一个定时器,谢谢各位朋友指点

项目需求:需要产生两种报表。具体描述:每天8点开始,每隔十五分钟产生每一刻报表;每隔半个小时,产生半小时报表,小弟写了两个定时器,但项目组长说不行,只能写一个定时器,他说如果要产生100种报表,难道要写100个定时器。他说要我在一个定时器的代码中不停地修改定时器时间间隔,不能写两个定时器,我试了,没办法修改定时器时间间隔,最后小弟尝试用一个spring定时器和一个java定时器也没有完成上述需求,最开始我用两个定时器能产生报表,只可惜组长说只能用一个定时器,小弟下周一就要给组长上交这个程序了,非常着急,希望知道的朋友给我说说具体怎么做,在这里我谢谢各位朋友了。
最好有程序说明,非常谢谢。

找到所有时间间隔的最大公约数。。开一个计时器。。间隔就是这个公约数

然后每次计时器执行的时候。。用经过的时间与所有时间间隔一一比较。。能整除则产生相应的报表。。。
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-04-15
public class ScheduleTask extends TimerTask {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

@Override
public void run() {
System.out.println("报表一:" + sdf.format(new Date()));
}

public static void main(String[] args) {
Timer timer = new Timer();
timer.scheduleAtFixedRate(new ScheduleTask(), DateUtil
.getCustomerStartDate(), 15 * 1000);
timer.scheduleAtFixedRate(new ScheduleTask2(), DateUtil
.getCustomerStartDate(), 30 * 1000);
}
}

class ScheduleTask2 extends TimerTask {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

@Override
public void run() {
System.out.println("报表二:" + sdf.format(new Date()));
}

}
报表一:2011-04-15 15:06:34
报表二:2011-04-15 15:06:34
报表一:2011-04-15 15:06:49
报表二:2011-04-15 15:07:04
报表一:2011-04-15 15:07:04
报表一:2011-04-15 15:07:19
报表二:2011-04-15 15:07:34
报表一:2011-04-15 15:07:34
相似回答