JAVAのタイマーを使って、開始時間と終了時間を指定して
一定の間隔で文字を表示するようなプログラムを作りたいのですが、
具体的なコードでどう書けばいいかわからず悩んでいます。
例えば、12時00分から12時01分までの間に10秒ごとに文字を表示する、みたいなことをしたいです。
簡単なプログラムの例を書いていただけると助かります。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答1件
0
ベストアンサー
TimerのscheduleAtFixedRateメソッドで開始時間と処理間隔を指定できますよ。
簡単なプログラムを下記に記載しますので参考までに。
(例:開始時間:12時00分〜終了時間:12時10分を指定して10秒ごとに文字を表示)
■MySchedule.java(メイン処理起動クラス)
`
import java.util.Calendar;
import java.util.Date;
import java.util.Timer;
import java.util.concurrent.TimeUnit;
public class MySchedule {
public static void main(String[] args) throws Exception{
MyTask task = new MyTask(); Timer timer = new Timer("myTimer"); System.out.println("処理開始:" + new Date()); //実行開始時間の指定 Calendar startCal = Calendar.getInstance(); startCal.set(Calendar.HOUR_OF_DAY, 12);//時間を設定(24時間) startCal.set(Calendar.MINUTE, 0);//分を設定 startCal.set(Calendar.SECOND, 0);//秒を設定 //実行開始時間になったら処理を実行させ、以降は10秒ごとに実行 timer.scheduleAtFixedRate(task, startCal.getTime(),TimeUnit.SECONDS.toMillis(10)); StopMyTask stopTask = new StopMyTask(timer); //実行終了時間の指定 Calendar stopCal = Calendar.getInstance(); stopCal.set(Calendar.HOUR_OF_DAY, 12); stopCal.set(Calendar.MINUTE, 10); stopCal.set(Calendar.SECOND, 0); //実行終了時間になったら処理終了 timer.schedule(stopTask, stopCal.getTime()); }
}
`
■MyTask.java(一定間隔の処理実行クラス)
`
import java.util.Date;
import java.util.TimerTask;
class MyTask extends TimerTask {
@Override
public void run() {
System.out.println("実行時間:" + new Date());
}
}
`
■StopMyTask.java(処理停止用クラス)
`
import java.util.Date;
import java.util.Timer;
import java.util.TimerTask;
public class StopMyTask extends TimerTask{
private Timer stopTimer;
public StopMyTask (Timer stopTimer) {
this.stopTimer = stopTimer;
}
@Override
public void run() {
this.stopTimer.cancel();
System.out.println("処理を停止します:" + new Date());
}
}
`
投稿2014/06/25 06:55
総合スコア284
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。