4

Java でコンピューターの時計 (分) を監視し、変更されるたびにメソッド/スレッドを起動するための最良の方法を探しています。

したがって、時間が 13:20 で、13.21 に変更された場合は、何かを行います。そのため、わずかな変更があるたびに、いくつかのコードが起動されます。

時計の分の部分の変化を聞くにはどうすればよいでしょうか?

ありがとう、リチャード

4

3 に答える 3

8
  1. System.currentTimeMillis() を使用して現在のシステム時刻を見つける
  2. 次の分まで何ミリ秒か計算する
  3. Timer で TimerTask をスケジュールして、将来そのミリ秒数で実行します
  4. その TimerTask のイベント ハンドラーで、新しい繰り返し発生する TimerTask を 60,000 ミリ秒ごとに実行するようにスケジュールします。

    int milisInAMinute = 60000;
    long time = System.currentTimeMillis();
    
    Runnable update = new Runnable() {
        public void run() {
            // Do whatever you want to do when the minute changes
        }
    };
    
    Timer timer = new Timer();
    timer.schedule(new TimerTask() {
        public void run() {
            update.run();
        }
    }, time % milisInAMinute, milisInAMinute);
    
    // This will update for the current minute, it will be updated again in at most one minute.
    update.run();
    
于 2012-07-24T16:30:44.560 に答える
2

Quartzの仕事のようですね。これは、次の cron 式を使用して実行できます。

0 * * * * ?

于 2012-07-24T16:23:43.530 に答える
1

Date d = new Date(System.currentTimeMillis());

次に、で議事録を取得できますd.getMinutes()。の値が変更されるのを待っているスレッドでチェックを実行しますd.getMinutes()

于 2012-07-24T16:24:34.350 に答える