2012-09-21 101 views

回答

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; 
+0

:没有人,我想要显示该间隔的计时器 – user1684892

+0

检查编辑。我认为这就是你要找的。获取更多字段只是让用户输入它们并从日历中提取适当的字段。 – xshoppyx

+0

MKJParekh给了我一个完美的答案,我的要求,无论如何thx很多xshoppyx .. – user1684892

2

任意两个日期之间得到差/日历对象最好以毫秒(long)为单位获得时间。

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()); 
+0

:thx很多人.. – user1684892

+0

完美的答案! +1 .. – Hiral

+0

[Wel-Come](http://stackoverflow.com/faq).. !! – MKJParekh

1

如果您可以使用第三方api,那么Joda time将保持非常好的上述情况。请参阅here

+0

+1我同意....! – MKJParekh