我出了点状况.我有来自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;
            }

Json相关问答推荐

Vegalite中分组条形图中的偏移量问题

ArcGIS json到Geojson的变换

规范化JSON数据

使用 jolt 变换展平嵌套 JSON - 非常复杂

如何将一个对象添加到多个对象中 JOLT

在Databricks中如何将JSON文件作为字典读取

在这种情况下我如何实现 UnmarshalJSON 并且只为一个接口字段定义特殊行为?

try 使用 JQ 转换 JSON 中过于复杂的对象数组

如何将该 JSON 解析为 Kotlin 类?

派生类的属性没有得到价值

JQ 中的样本标准偏差

Jackson 的@JsonView、@JsonFilter 和 Spring

如何从 HttpClient 解析 JSON 字符串?

在 JSON 编码的 HTML5 数据属性中转义/编码单引号

jQuery.getJSON 和 jQuery.parseJSON 返回 [object Object]?

如何让 javascript 从 .json 文件中读取?

处理 HTTP 请求正文中的可选 JSON 字段

使用 axios 在 POST multipart/form-data 请求中发送文件和 json

为什么 jqXHR.responseText 返回字符串而不是 JSON 对象?

log4j 支持 JSON 格式吗?