0

この思考を Java タイマーで行うには、毎日朝 8 時と夜 8 時にメソッドを実行する必要があります。このシナリオのタイマーを設定する方法。

4

4 に答える 4

2

Timer クラスを使用します。

    Calendar calendar = Calendar.getInstance();
    calendar.set(Calendar.HOUR_OF_DAY, 8);
    Timer timer = new Timer();
    timer.schedule(new RemindTask(), calendar.getTime());

    class RemindTask extends TimerTask {

       public void run() {
       } 
    }

同様の行で、夕方の時間用の別のタイマーも作成できます。もう 1 つのオプションは、開始時刻が朝 8 で間隔が 12 時間の単一タイマーを使用することです。

Quartz Schedulerなどのスケジューリング用の他のライブラリを使用することもできます。

于 2013-04-11T04:28:46.190 に答える
1

必要なことを行うライブラリはたくさんあります。例としてcron4jを見てください。

于 2013-04-11T04:28:30.310 に答える
1

TimerTask を毎正時に実行するようにスケジュールし、カレンダーを使用して 8 かどうかを確認できます。

    long hour = 3600 * 1000;
    new Timer().scheduleAtFixedRate(new TimerTask() {
        public void run() {
            if (Calendar.getInstance().get(Calendar.HOUR) == 8) {
                // run
            }
        }
    }, new Date(System.currentTimeMillis() / hour * hour), hour);

サマータイムに切り替わっても8時には走ります

于 2013-04-11T04:40:07.893 に答える
1

次のような関数を使用して、定期的に時間を確認できます。

import java.text.SimpleDateFormat;
import java.util.Calendar;

public class currentTime {

    public static void main(String[] args) {
        Calendar cal = Calendar.getInstance();
        cal.getTime();
        SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss");
        System.out.println( sdf.format(cal.getTime()) );
    }

}

したがって、カウンターを用意して、x回の反復ごとに実行します。

于 2013-04-11T04:29:27.393 に答える