24-Hour localTime comparison gives different results based on 0X:mm or 1X:mm

问题描述 投票:0回答:0

如果 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
    }

希望有人指出我做错了什么并指导我,请告诉我为什么它只对某些值有效

kotlin localdate localtime datetimeformatter
© www.soinside.com 2019 - 2024. All rights reserved.