0

問題があります。日ではなく、時間と分だけを計算する必要があります

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ます。

4

1 に答える 1