将小时和分钟添加到特定时间java

Sta*_*ver 3 java time

我把 String initialTime= "10:30:00" 它转换成时间,如下所示:-

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();
Run Code Online (Sandbox Code Playgroud)

此外,我有两个价值观;

int hour, mins;
Run Code Online (Sandbox Code Playgroud)

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

用户通过选择hour和来选择时间mins。一旦用户选择了值,它们就会被添加到 initialTime并显示在finalTIme

因此,如果:-

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
Run Code Online (Sandbox Code Playgroud)

我尝试做类似的事情:-

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;
}
Run Code Online (Sandbox Code Playgroud)

但我没有得到所需的输出。我怎样才能以不太复杂的方式做到这一点?

Are*_*rek 5

您可以使用 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();
Run Code Online (Sandbox Code Playgroud)

您还可以考虑 JDK 8 中的新 Date API。