-4

我怎么知道两个时间表之间是否有一小时?

例子:

10:00 is between 8:00 and 12:00?
7:30 is between 8:00 and 12:00?

我正在尝试这种方式:

LocalDateTime s = LocalDateTime.of (2017, 10, 20, 8, 00);
LocalDateTime f = LocalDateTime.of (2017, 10, 20, 12, 00);

LocalDate test = LocalDate.of (2017, 10, 20, 10, 00); (<- Must be LocalDate)

if ((test.isAfter (s)) && (test.isBefore (s))
   return true;
else
   return false;

它返回以下错误:

方法 isBefore (ChronoLocalDateTime ) 在类型 LocalDateTime 中不适用于参数 (LocalTime)

4

3 回答 3

8

如果您只对时间感兴趣,为什么还要包含日期?

LocalTime s = LocalTime.of (8, 0);
LocalTime f = LocalTime.of (12, 0);

LocalTime test = LocalTime.of (10, 0);

if (test.isAfter (s) && test.isBefore (f))

如果你收到了LocalDateTime,你可以打电话ldt.toLocalTime()

于 2017-10-27T12:58:18.143 回答
0

然后去LocalDates;也许用!after而不是before.

return test.isAfter(s.toLocalDate()) && test.isBefore(f.toLocalDate());
于 2017-10-27T12:57:22.097 回答
0

你的问题是错误的,因为代码甚至没有编译,但我猜你正在你的对象上寻找以下方法LocalDate

  • atStartOfDay()将时间转换LocalDateLocalDateTime00:00

  • atTime(int hour, int minute)将 a 转换LocalDateLocalDateTime提供的时间

于 2017-10-27T13:02:55.180 回答