本帖最后由 sky123123 于 2010-03-25 17:30:56 编辑

解决方案 »

  1.   


    import java.text.SimpleDateFormat;import java.util.Date;import org.tiling.scheduling.Scheduler;
    import org.tiling.scheduling.SchedulerTask;
    import org.tiling.scheduling.examples.iterators.DailyIterator;public class AlarmClock 
    {    private final Scheduler scheduler = new Scheduler();//调度器
        private final SimpleDateFormat dateFormat =
            new SimpleDateFormat("dd MMM yyyy HH:mm:ss.SSS");
        private int hourOfDay, minute, second;//每天触发的时间点     public AlarmClock(int hourOfDay, int minute, int second) 
        {
            this.hourOfDay = hourOfDay;
            this.minute = minute;
            this.second = second;
        }    public void start() 
        {
            scheduler.schedule(new SchedulerTask() 
            {
                public void run() 
                {
                    soundAlarm();
                   new AlarmClock(hourOfDay,minute,second+1).start();
                    
                }
                private void soundAlarm()
                {
                    System.out.println("Wake up! " +
                        "It's " + dateFormat.format(new Date()));
                    // Start a new thread to sound an alarm
                }
            }, new DailyIterator(hourOfDay, minute, second));//通过迭代器模式迭代遍历得到后面一系列的时间点
        }    public static void main(String[] args) 
        {
            AlarmClock alarmClock = new AlarmClock(18, 30, 50);
            alarmClock.start();
        }
    }
      

  2.   

    哦,这样啊,我一般都是使用 Quartz 这个调度框架,挺好用的,你也可以去看看。