在java中如何将int(分钟)转换为Duration?

在java中如何将int(分钟)转换为Duration?,java,time,duration,Java,Time,Duration,我试图将一个持续时间与一个表示分钟的整数进行比较,以确定它是更长的时间还是更短的时间。我试图使用compareToDuration方法,但不能使用int作为参数。如何将整数分钟转换为持续时间?您可以使用静态方法创建以分钟为单位的持续时间。所以,作为一个愚蠢的例子 int compareDurations(Duration d) { int myMinutes = 5; Duration durationInMinutes = Duration.ofMinutes(myMinute

我试图将一个持续时间与一个表示分钟的整数进行比较,以确定它是更长的时间还是更短的时间。我试图使用compareToDuration方法,但不能使用int作为参数。如何将整数分钟转换为持续时间?

您可以使用静态方法创建以分钟为单位的持续时间。所以,作为一个愚蠢的例子

int compareDurations(Duration d) {
    int myMinutes = 5;
    Duration durationInMinutes = Duration.ofMinutes(myMinutes);
    return d.compareTo(durationMinutes);
}
单程,带:

持续时间=10的持续时间,计时单位:秒; 整数秒=5; System.out.printlnduration.getSeconds-秒; 注意,它有许多有用的常量成员,如分钟、天、周、世纪等

另一种方式是:

LocalTime LocalTime=LocalTime.of0,0,15//hh-mm-ss 整数秒=5; System.out.printlnllocaltime.getSecond-秒;
我总是觉得涉及比较的代码很难阅读。因此,在大多数情况下,我更愿意采用另一种方式:将持续时间转换为分钟,然后使用普通的时间进行比较

输出:

分钟更短或相同

如果您需要知道分钟是否严格更短,那么代码将稍微长一点,当然这不是开玩笑的本意。在某些情况下,一种方法确实涉及将分钟转换为持续时间:

    if (minutes > dur.toMinutes()) {
        System.out.println("The minutes are longer");
    } else if (Duration.ofMinutes(minutes).equals(dur)) {
        System.out.println("The minutes are the same");
    } else {
        System.out.println("The minutes are shorter");
    }
时间更短


我真希望Duration类有isLonger和isShorter方法,尽管刚才提到的名称在负Duration时可能不太清楚。然后,我建议将分钟数转换为一个持续时间,如已接受的答案所示。

您使用的持续时间类是什么?java.time.DurationDuration.ofminutesimutesint
    if (minutes > dur.toMinutes()) {
        System.out.println("The minutes are longer");
    } else if (Duration.ofMinutes(minutes).equals(dur)) {
        System.out.println("The minutes are the same");
    } else {
        System.out.println("The minutes are shorter");
    }