Resettable Java Timer

前端 未结 8 1107
爱一瞬间的悲伤
爱一瞬间的悲伤 2020-11-28 07:31

I\'d like to have a java.utils.Timer with a resettable time in java.I need to set a once off event to occur in X seconds. If nothing happens in between the time the timer wa

8条回答
  •  孤街浪徒
    2020-11-28 07:55

    Here is the example for Resetable Timer . Try to change it for your convinence...

    package com.tps.ProjectTasks.TimeThread;
    
    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStreamReader;
    import java.text.SimpleDateFormat;
    import java.util.Date;
    import java.util.Timer;
    import java.util.TimerTask;
    
    /**
     * Simple demo that uses java.util.Timer to schedule a task to execute
     * every 5 seconds and have a delay if you give any input in console.
     */
    
    public class DateThreadSheduler extends Thread {  
        Timer timer;
        BufferedReader br ;
        String data = null;
        Date dNow ;
        SimpleDateFormat ft;
    
        public DateThreadSheduler() {
    
            timer = new Timer();
            timer.schedule(new RemindTask(), 0, 5*1000); 
            br = new BufferedReader(new InputStreamReader(System.in));
            start();
        }
    
        public void run(){
    
            while(true){
                try {
                    data =br.readLine();
                    if(data != null && !data.trim().equals("") ){
                        timer.cancel();
                        timer = new Timer();
                        dNow = new Date( );
                        ft = new SimpleDateFormat ("E yyyy.MM.dd 'at' hh:mm:ss a zzz");
                        System.out.println("Modified Current Date ------> " + ft.format(dNow));
                        timer.schedule(new RemindTask(), 5*1000 , 5*1000);
                    }
    
                }catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    
        public static void main(String args[]) {
            System.out.format("Printint the time and date was started...\n");
            new DateThreadSheduler();
        }
    }
    
    class RemindTask extends TimerTask {
        Date dNow ;
        SimpleDateFormat ft;
    
        public void run() {
    
            dNow = new Date();
            ft = new SimpleDateFormat ("E yyyy.MM.dd 'at' hh:mm:ss a zzz");
            System.out.println("Current Date: " + ft.format(dNow));
        }
    }
    

    This example prints the current date and time for every 5 seconds...But if you give any input in console the timer will be delayed to perform the given input task...

提交回复
热议问题