プロが教えるわが家の防犯対策術!

質問です。

開始時刻 09:00:00
終了時刻 22:00:00

という前提で、

現在時刻を

String nowtime =
DateFormat.getTimeInstance(DateFormat.MEDIUM).format(now);
//hh:mm:ssという形式で取得し、

現在時刻が9:00:00から22:00:00
までならば、有効時間帯で、それ以外は、無効としようとしています。

if(9:00:00~22:00:00){
 System.out.println("有効時間帯");
 return true;
}
return false;

 そこで、if文内の判定方法なのですが、
 良い方法がありましたら、
 お教え願えませんでしょうか?

 よろしくお願いします。

A 回答 (3件)

> if(9:00:00~22:00:00){



if (nowtime.compareTo("09:00:00") >= 0 && nowtime.compareTo("22:00:00") <= 0) {

かな。
    • good
    • 0
この回答へのお礼

ありがとうございます。
今回は、a-kumaさんの案を利用させていただくことにします。 ありがとうございました。

お礼日時:2002/10/15 17:24

CalendarクラスのAPIリファレンスを見てください。


(DateクラスのAPIリファレンスにも、Calendarを使うように書いてますよね?)





サンプル:
----------
Calendar cal = Calendar.getInstance();
Date now = cal.getTime();

cal.set(Calendar.HOUR_OF_DAY, 9);
cal.set(Calendar.MINUTE, 0);
cal.set(Calendar.SECOND, 0);

Date start = cal.getTime();
cal.set(Calendar.HOUR_OF_DAY, 22);
Date end = cal.getTime();

System.out.println("now :" + now);
System.out.println("start:" + start);
System.out.println("end :" + end);

//nowはstartより後で、endより前かどうかをチェック
System.out.println("start < now < end: " + (now.after(start) && now.before(end)));


正直、文字列比較の方が楽ですね。。。
    • good
    • 0
この回答へのお礼

今回は、詳しくお教えいただきました。ありがとうございました。

お礼日時:2002/10/15 17:25

文字列で時間の大小比較をせずに、DateやCalendarオブジェクトで


比較したらよいと思います。

例:
現在日付の09:00:00のDateオブジェクトを取得
チェックしたい日付時刻(現在時刻?)のDateオブジェクトを取得
現在日付の22:00:00のDateオブジェクトを取得
この3つについて、Date#after, Date#beforeメソッドを使えば、
日付の前後関係が分かる。

また、文字列で比較したいとしたら、"9:00:00"ではなく、"09:00:00"
といった形式で作成して、String#compareToで辞書的に比較しても
できると思います。

この回答への補足

すみません。JavaのAPIを見たのですが,良くわかりません。
具体的に 
>現在日付の09:00:00のDateオブジェクトを取得
>チェックしたい日付時刻(現在時刻?)のDateオブジェクトを取得
>現在日付の22:00:00のDateオブジェクトを取得

というのは、どうやるのでしょうか?
すみませんが、おしえてください。

補足日時:2002/10/08 18:01
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!