0

誰かがシステム時間とユーザー定義時間の間の間隔を私の時間=20と分=12として見つけることを提案できますか?私はこの2つの時間の間の間隔を見つけたいので、カウントダウンタイマーにこの時間を設定する必要があります

4

3 に答える 3

2

任意の 2 つの日付/カレンダー オブジェクトの差を取得するには、時間をミリ秒 (ロング) で取得することをお勧めします。

    Calendar current = Calendar.getInstance();
    Calendar usertime = Calendar.getInstance();
    usertime.set(Calendar.HOUR_OF_DAY, 20);
    usertime.set(Calendar.MINUTE, 12);

    long diffInMilisecond = Math.abs(usertime.getTimeInMillis()-current.getTimeInMillis());
于 2012-09-21T05:31:09.707 に答える
1

サードパーティの API を使用できる場合、Joda の時間は上記のシナリオに非常に適しています。こちらをご覧ください

于 2012-09-21T05:37:30.540 に答える
0

現在の時刻からの時間ではなく、ユーザーが希望する時刻を入力するという面倒なことをするのはなぜですか? カウントダウンタイマーのアイデアにマッピングすると、より理にかなっています。

ユーザーが指定した時間にタイマーを設定したい場合、これが私が行う方法です。

//Get user input into variable hours, and minutes
Timer timer = new Timer();
timer.schedule(new TimerTask() {
    public void run() {
        //do stuff when countdown has happened
    }, (((hours * 60) + minutes) * 60) * 1000)); //time in milliseconds to exec run
}

編集

ユーザーが時間と分を入力したときの時間差を計算したいだけの場合は、次のようにしてください。

//Get user input into variable hours, and minutes
Calendar cal = new GregorianCalendar();
//Assuming user inputs hour in 24 hour format and inputted time is in future
totalMinsDiff = (hours - cal.get(Calendar.HOUR_OF_DAY)) * 60 + 
      minutes - cal.get(Calendar.MINUTE); 
countdownHours = totalMinsDiff / 60;
countdownMins = totalMinsDiff % 60;
于 2012-09-21T04:47:40.797 に答える