我出了点状况.我有来自json响应的字符串格式的打开和关闭时间.如何判断当前时间在营业时间和关闭时间之间? 假设OpenHour是"09:00:00:",而CloseHour是"21:00:00".
我是Android的新手,不知道这一逻辑是从哪里开始的.
我出了点状况.我有来自json响应的字符串格式的打开和关闭时间.如何判断当前时间在营业时间和关闭时间之间? 假设OpenHour是"09:00:00:",而CloseHour是"21:00:00".
我是Android的新手,不知道这一逻辑是从哪里开始的.
首先,获取当前的日历实例.分析打开和关闭的小时字符串,并将小时设置为日历.然后将打开和关闭的日历与当前日历进行比较.
val date = Calendar.getInstance()
val openCalender = Calendar.getInstance()
val closeCalendar = Calendar.getInstance()
val dayToday = android.text.format.DateFormat.format("EEEE", date).toString()
val todayObj = chatOpenHours?.find { it.dayOfWeek == dayToday }
Log.e(TAG, "handleHeroChatAnimation: "+chatOpenHours.toString(), )
if (todayObj != null) {
val openUnits = todayObj.openTime?.split(":")
val openHour = openUnits?.get(0)
val openMinutes = openUnits?.get(1)
val openSeconds = openUnits?.get(2)
openCalender.set(Calendar.HOUR_OF_DAY, openHour?.toInt() ?: 0)
openCalender.set(Calendar.MINUTE, openMinutes?.toInt() ?: 0)
openCalender.set(Calendar.SECOND, openSeconds?.toInt() ?: 0)
val closeUnits = todayObj.closeTime?.split(":")
val closeHour = closeUnits?.get(0)
val closeMinutes = closeUnits?.get(1)
val closeSeconds = closeUnits?.get(2)
closeCalendar.set(Calendar.HOUR_OF_DAY, closeHour?.toInt() ?: 0)
closeCalendar.set(Calendar.MINUTE, closeMinutes?.toInt() ?: 0)
closeCalendar.set(Calendar.SECOND, closeSeconds?.toInt() ?: 0)
val isChatOpen = if (todayObj.openTime == null) {
todayObj.closeTime == null || date <= closeCalendar;
} else if (todayObj.closeTime == null) {
openCalender <= date;
} else {
openCalender.compareTo(date) * date.compareTo(closeCalendar) >= 0;
}