我把 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)
但我没有得到所需的输出。我怎样才能以不太复杂的方式做到这一点?
您可以使用 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。