6

私のアプリでは、時間がユーザーが選択した特定の時間帯にある場合、いくつかのものを更新しています。ユーザーが「07-21」のようなものを選択した場合は正常に機能しますが、夜通しの「21-07」では機能しません。時間を確認する方法は、現在の時間を取得してミリ秒に変換することです。次に、現在のミリが選択した時間の間にあるかどうかを確認します (これらもミリ秒に変換されます)。このような:

    if (currentMilli >= startHourMilli && currentMilli <= endHourMilli) 

問題: ユーザーが真夜中 (19-08 など) を超えるものを選択すると機能しません。

私は多くのことを試しましたが、これを行う方法がわかりません。

どんな助けでも大歓迎です!

4

7 に答える 7

2

Date には、2 つの日付を比較するための関数 before と after があります。このドキュメントが次のことに役立つことを願っています。

http://developer.android.com/reference/java/util/Date.html#after(java.util.Date)

http://developer.android.com/reference/java/util/Date.html#before(java.util.Date)

よろしくお願いします。

于 2013-01-29T21:38:52.550 に答える
1

確認する最も簡単な方法..

val isDayTime : Boolean
    get() {
        val cal = Calendar.getInstance()
        val hour = cal.get(Calendar.HOUR_OF_DAY)
        return hour in 8..20
    }
于 2021-08-25T11:26:34.553 に答える
0

私は自分の質問に答えています。私がやろうとしていることに役立つかもしれない何かを思いついたと思うからです。

if(endHourMilli < startHourMilli){
if(currentMilli >= startHourMilli && currentMilli <= 23*3600000 || currentMilli >= 0 && currentMilli <= endHourMilli){
//Do whatever 
}
}else{
if (currentMilli >= startHourMilli && currentMilli <= endHourMilli) {
//Do whatever
}
}

endMilliがstartMilliよりも小さい場合でも機能するはずです。または、ここで何かを台無しにしましたか?

于 2013-01-31T15:36:35.917 に答える