2014-09-13 58 views
1

我有String initialTime= "10:30:00" 我转换成时间,像这样: -添加小时和分钟到一定的时候java的

DateFormat sdf = new SimpleDateFormat("hh:mm:ss"); 
Date date = sdf.parse(initialTime); 
Time time = new Time(date.getTime()); 
int initHour = time.getHours() 
int initMind = time.getMinutes(); 

而且我有两个值;

int hour, mins; 

小时值可以是0-10之间的任何值; 分钟值可以是0,15,30,45。

用户通过选择hourmins选择时间。一旦用户选择他们应该加入到initialTimefinalTIme

所以显示的值,如果: -

hour=0 and mins=15 then finalTIme=10:45:00 
hour=0 and mins=35 then finalTIme=11:00:00 
hour=0 and mins=45 then finalTIme=11:15:00 

我试图做这样的事情: -

if(hour==0 && mins==0) 
{ 
    finalTime = initialTime; 
} 

else if(hour==0 && mins>0 && mins <30) 
{ 
    mins = initMins + mins 
} 
else if(hour==0 && mins>0 && mins >=30) 
{ 
    hours = hours+1; 
    mins = mins-60; 
} 

但我没有得到所需的输出。我可以以一种不那么复杂的方式做到吗?

+0

的可能重复【JAVA:如何添加10分钟在我的时间](http://stackoverflow.com/questions/9015536​​/java-how-to-add-10-mins-in-my-time)和[此](http://stackoverflow.com/q/5894726/642706 )和其他许多人。 – 2014-09-13 06:10:40

回答

3

可以使用的java.util.Calendar类:

DateFormat sdf = new SimpleDateFormat("hh:mm:ss"); 
Date date = sdf.parse(initialTime); 
Calendar cal = Calendar.getInstance(); 
cal.setTime(date); 

cal.add(Calendar.HOUR_OF_DAY, hours); 
cal.add(Calendar.MINUTE, minutes); 

date = cal.getTime(); 

您也可以从JDK 8.考虑新日期API

+0

这会更新当前时间吗?我想补充到我的初始时间10.30 – 2014-09-13 05:03:02