0

我正在尝试使用

import android.text.format.Time;
Time startTime = new Time();
startTime.hour = 6;
startTime.minute = 0;

现在经过计算,当我这样做startTime.minute = startTime.minute + xx并且它超过60 min时,它不会变为零,也不会改变 startTime 的小时数。

我怎样才能做到这一点?

4

3 回答 3

4

您需要自己检查溢出:

if (startTime.minute + xx >= 60) {
  startTime.hour += 1;
}
startTime.minute = (startTime.minute + xx) % 60;

[编辑]

Calendar正如@Jmelnik:s 的回答和@VikramBodicherla:scomment 所说,如果您正在做的不是您在代码片段中显示的非常基本的操作,那么您绝对应该看看这个类或类似的高级东西。

于 2012-07-20T06:03:48.793 回答
0

基本上我建议你使用标准的 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。

在线运行此代码。

于 2012-07-20T06:38:51.493 回答
0
于 2018-07-06T00:58:02.963 回答