我正在尝试使用
import android.text.format.Time;
Time startTime = new Time();
startTime.hour = 6;
startTime.minute = 0;
现在经过计算,当我这样做startTime.minute = startTime.minute + xx
并且它超过60 min
时,它不会变为零,也不会改变 startTime 的小时数。
我怎样才能做到这一点?
您需要自己检查溢出:
if (startTime.minute + xx >= 60) {
startTime.hour += 1;
}
startTime.minute = (startTime.minute + xx) % 60;
[编辑]
Calendar
正如@Jmelnik:s 的回答和@VikramBodicherla:scomment 所说,如果您正在做的不是您在代码片段中显示的非常基本的操作,那么您绝对应该看看这个类或类似的高级东西。
基本上我建议你使用标准的 Java API,Android API 能够做到这样的事情,这使得文档更好,搜索引擎充满了例子。
只需您的代码如下所示:
//1. Instantiate Date
Date date = new Date();
Calendar cal = Calendar.getInstance();
cal.setTime(date);
//2. Manipulate it with Calendar
cal.set(Calendar.HOUR_OF_DAY, 6);
cal.set(Calendar.MINUTE, 0);
cal.add(Calendar.MINUTE, 65);
//3. Format it with DateFormat
DateFormat df = new SimpleDateFormat("HH:mm", Locale.ENGLISH);
df.setTimeZone(TimeZone.getTimeZone("GMT"));
String time = df.format(cal.getTime()); //07:05
不要忘记,如果您没有特别设置,SimpleDateFormat 将默认为您的系统 TimeZone 和 Locale。