我怎么知道两个时间表之间是否有一个小时?
示例:
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中不适用于参数 (本地时间)
答案 0 :(得分:7)
如果您只对时间感兴趣,为什么要包含日期?
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()
。
答案 1 :(得分:0)
然后去LocalDates;也许使用!after
代替before
。
return test.isAfter(s.toLocalDate()) && test.isBefore(f.toLocalDate());
答案 2 :(得分:-1)
你的问题是错误的,因为代码甚至没有编译,但我想你正在寻找LocalDate
对象上的以下方法:
atStartOfDay()
将LocalDate
转换为LocalDateTime
,时间为00:00
atTime(int hour, int minute)
使用提供的时间将LocalDate
转换为LocalDateTime