問題があります。日ではなく、時間と分だけを計算する必要があります
import java.util.concurrent.TimeUnit;
public class TimeUtils {
public static String millisecondToFullTime(long millisecond) {
return timeUnitToFullTime(millisecond, TimeUnit.MILLISECONDS);
}
public static String secondToFullTime(long second) {
return timeUnitToFullTime(second, TimeUnit.SECONDS);
}
public static String minutesToFullTime(long minutes) {
return timeUnitToFullTime(minutes, TimeUnit.MINUTES);
}
public static String timeUnitToFullTime(long time, TimeUnit timeUnit) {
long day = timeUnit.toDays(time);
long hour = timeUnit.toHours(time) % 24;
long minute = timeUnit.toMinutes(time) % 60;
long second = timeUnit.toSeconds(time) % 60;
if (day > 0) {
return String.format("%d day %02d:%02d:%02d", day, hour, minute, second);
} else if (hour > 0) {
return String.format("%d:%02d:%02d", hour, minute, second);
} else if (minute > 0) {
return String.format("%d:%02d", minute, second);
} else {
return String.format("%02d", second);
}
}
}
このコードはどのように Java で時間と分だけを計算できますか? 現在、数時間と数分で結果が得られます。一部の関数は millisecondToFullTime を返し、一部の関数は分をフルタイムに返します。日 if 句をコメントアウトすると、正しく計算されません。
引数が 1 日 5 時間 30 分に相当する場合は、 を返す必要があり29:30:00
ます。