質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Q&A

解決済

1回答

11093閲覧

タイマーで開始時間と終了時間を指定して一定間隔で処理させたい

peyoung

総合スコア122

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

0グッド

0クリップ

投稿2014/06/19 17:07

JAVAのタイマーを使って、開始時間と終了時間を指定して
一定の間隔で文字を表示するようなプログラムを作りたいのですが、
具体的なコードでどう書けばいいかわからず悩んでいます。

例えば、12時00分から12時01分までの間に10秒ごとに文字を表示する、みたいなことをしたいです。

簡単なプログラムの例を書いていただけると助かります。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答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

takeda.d

総合スコア284

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問