如果 2 个时间间隔之间存在时间冲突,我有一个返回 false 的函数。他们两个都是
HH:mm
。当我放start 13:00
end 14:00
和 start 13:30
end 14:30
时,它会给我假的,但是当我比较像 start 01:00
end 02:00
和 start 01:30
end 02:30
这样的东西时,它给了我真的?
private suspend fun checkTimeDate(_date: LocalDate, _s: LocalTime, _e: LocalTime): Boolean {
freeSlotsDb.get().await().map {
val a = it.toObject(Appointment::class.java)
val aDate = LocalDate.parse(a.date, DateTimeFormatter.ofPattern("MMM dd yyyy"))
val aStartTime = LocalTime.parse(a.start, DateTimeFormatter.ofPattern("HH:mm"))
val aEndTime = LocalTime.parse(a.end, DateTimeFormatter.ofPattern("HH:mm"))
if(_date.isEqual(aDate))
{
if (_s.isBefore(aEndTime) && _e.isAfter(aStartTime) ){
Log.d("Time conflict", "First case")
return false
}
else if (_s == aStartTime || _s == aEndTime){
Log.d("Time conflict", "Second case")
return false
}
else if (_e == aStartTime || _e == aEndTime){
Log.d("Time conflict", "Third case")
return false
}
} else
return true
}
return true
}
希望有人指出我做错了什么并指导我,请告诉我为什么它只对某些值有效