1

SimpleDateFormat を使用して解析した時間を取り、現在の時刻が 2 つの時間セットの間にあるかどうかを判断しようとしています。基本的に、場所の営業時間を考慮して、現在営業しているかどうかを判断しようとしています。

次のようにして現在の時刻を取得しています。

SimpleDateFormat sdf2 = new SimpleDateFormat("kk:mm");
Calendar now = Calendar.getInstance();
int hour = now.get(Calendar.HOUR);
int minute = now.get(Calendar.MINUTE);
String currentHour = Integer.toString(hour);
String currentMinute = Integer.toString(minute);
String timeNow = currentHour + ":" + currentMinute;
Date timeRightNow = sdf2.parse(timeNow);

次に、timeRightNow開店時間と閉店時間の間にあるかどうかを判断し、次のことを行っています。

if (timeOpen.before(timeRightNow) && timeClose.after(timeRightNow)) {
    openStatus = "open!";
} else { 
    openStatus = "closed."; 
}

timeOpenとはどちらも、見つかったのとまったく同じ方法でtimeClose文字列を解析することによって見つかります。sdf2timeRightNow

これが実行されるたびに、openStatus「closed」に設定されます。現在の時刻が開店時間と閉店時間の間にある場合でも。なぜこれが起こっているのかを理解するために、誰かが私を正しい方向に向けることができますか?

4

1 に答える 1

1

に変更Calendar.HOURしましたCalendar.HOUR_OF_DAY。これで問題は解決しました。

于 2013-07-28T21:58:31.973 に答える