Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/364.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 只需几小时和几分钟_Java_Timeunit - Fatal编程技术网

Java 只需几小时和几分钟

Java 只需几小时和几分钟,java,timeunit,Java,Timeunit,我有问题。我只需要计算小时和分钟,而不是天 import java.util.concurrent.TimeUnit; public class TimeUtils { public static String millisecondToFullTime(long millisecond) { return timeUnitToFullTime(millisecond, TimeUnit.MILLISECONDS); } public static S

我有问题。我只需要计算小时和分钟,而不是天

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中只计算小时和分钟? 现在我在几小时和几分钟内得到结果。有些函数返回毫秒到全时,有些函数返回分钟到全时。 如果我注释掉day If子句,它将无法正确计算


如果参数相当于1天5小时30分钟,则应返回
29:30:00

您需要从
long hour=timeUnit.toHours(time)%24中删除模块操作因为这将以小时为单位计算时间,并删除与一天相关的所有内容。您的方法将以如下方式结束:

public static String timeUnitToFullTime(long time, TimeUnit timeUnit) {
    long hour = timeUnit.toHours(time);
    long minute = timeUnit.toMinutes(time) % 60;
    long second = timeUnit.toSeconds(time) % 60;

    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);
    }
}

您需要从
long hour=timeUnit.toHours(time)%24中删除模块操作因为这将以小时为单位计算时间,并删除与一天相关的所有内容。您的方法将以如下方式结束:

public static String timeUnitToFullTime(long time, TimeUnit timeUnit) {
    long hour = timeUnit.toHours(time);
    long minute = timeUnit.toMinutes(time) % 60;
    long second = timeUnit.toSeconds(time) % 60;

    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);
    }
}

你期望的结果是什么?如果参数相当于1天5小时30分钟,您是要29:30:00还是仅仅5:30:00?它应该返回29:30:00,这样您就可以从小时计算中删除所有的日期引用和
%24
,从而得到正确的结果?如果没有,你能更好地解释一下,你希望得到什么样的结果?好的,我已经把它作为一个答案发布了,这样答案就不会在评论中丢失。你想要的结果是什么?如果参数相当于1天5小时30分钟,您是要29:30:00还是仅仅5:30:00?它应该返回29:30:00,这样您就可以从小时计算中删除所有的日期引用和
%24
,从而得到正确的结果?如果不是的话,你能更好地解释一下,你希望得到什么样的结果?好的,我已经把它作为一个答案发布了,这样答案就不会在评论中丢失。