0

任何人都可以建议我找到系统时间和用户定义时间之间的时间间隔,因为我的小时 = 20 和分钟 = 12。我只想找到这两次之间的时间间隔,并且需要设置这个时间作为倒数计时器

4

3 回答 3

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 time将非常适合上述场景。看这里

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