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;

[編集]

@Jmelnik:s answer および @VikramBodicherla:scomment が述べているようCalendarに、コード スニペットに示す非常に基本的な操作以外のことを行っている場合は、クラスまたは同様の高度なものを必ず確認する必要があります。

于 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 に答える