public\u0020void\u0020getMjAttendanceTask(){\n\t\t//\u0020获取当前时间\n\t\tCalendar\u0020calendar\u0020=\u0020Calendar.getInstance();\n\t\tDate\u0020currentTime\u0020=\u0020calendar.getTime();\n\n\t\t//\u0020将当前时间向前推一个小时\n\t\tcalendar.add(Calendar.HOUR_OF_DAY, -1);\n\t\tDate\u0020previousHour\u0020=\u0020calendar.getTime();\n\n\t\t//\u0020获取前一个小时的开始时间和结束时间\n\t\tcalendar.setTime(previousHour);\n\t\tcalendar.set(Calendar.MINUTE, 0);\n\t\tcalendar.set(Calendar.SECOND, 0);\n\t\tDate\u0020startOfPreviousHour\u0020=\u0020calendar.getTime();\n\n\t\tcalendar.add(Calendar.HOUR_OF_DAY, 1);\n\t\tcalendar.add(Calendar.SECOND, -1);\n\t\tDate\u0020endOfPreviousHour\u0020=\u0020calendar.getTime();\n\n\t\t//\u0020格式化时间为字符串\n\t\tSimpleDateFormat\u0020dateFormat\u0020=\u0020new\u0020SimpleDateFormat("yyyy-MM-dd\u0020HH:mm:ss");\n\t\tString\u0020startOfPreviousHourStr\u0020=\u0020dateFormat.format(startOfPreviousHour);\n\t\tString\u0020endOfPreviousHourStr\u0020=\u0020dateFormat.format(endOfPreviousHour);\n\t\tString\u0020result\u0020=\u0020HttpUtils.sendGet("http://10.110.129.248:8080/data/api/daHua/getCrosssData");\n\t\tJSONObject\u0020jsonObject\u0020=\u0020JSONObject.parseObject(result);\n\t\tList\u0020filteredData\u0020=\u0020new\u0020ArrayList<>();\n\t\t//\u0020解析数据\n\t\tif\u0020(jsonObject.get("code").equals(200)){\n\t\t\tJSONArray\u0020data\u0020=\u0020jsonObject.getJSONArray("data");\n\t\t\tList\u0020jsonObjects\u0020=\u0020data.toJavaList(JSONObject.class);\n\n\t\t\t//\u0020过滤无卡号数据并且swingTime包含在startOfPreviousHourStr和endOfPreviousHourStr之间的数据\n\t\t\tfor\u0020(JSONObject\u0020obj\u0020:\u0020jsonObjects)\u0020{\n\t\t\t\tif\u0020(obj.containsKey("personCode")\u0020&&\u0020!obj.getString("personCode").isEmpty()\u0020&&\u0020obj.containsKey("swingTime"))\u0020{\n\t\t\t\t\tString\u0020swingTime\u0020=\u0020obj.getString("swingTime");\n\t\t\t\t\tif\u0020(checkTimeInInterval(swingTime, startOfPreviousHourStr, endOfPreviousHourStr))\u0020{\n\t\t\t\t\t\tfilteredData.add(obj);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tSystem.out.println("获取到有卡号数据" + filteredData);\n\t\t}\n\t}\n\n\t//\u0020检查时间是否在指定的时间间隔内\n\tprivate\u0020boolean\u0020checkTimeInInterval(String\u0020time, String\u0020start, String\u0020end)\u0020{\n\t\tSimpleDateFormat\u0020dateFormat\u0020=\u0020new\u0020SimpleDateFormat("yyyy-MM-dd\u0020HH:mm:ss");\n\t\ttry\u0020{\n\t\t\tDate\u0020swingTime\u0020=\u0020dateFormat.parse(time);\n\t\t\tDate\u0020startTime\u0020=\u0020dateFormat.parse(start);\n\t\t\tDate\u0020endTime\u0020=\u0020dateFormat.parse(end);\n\t\t\treturn\u0020swingTime.after(startTime)\u0020&&\u0020swingTime.before(endTime);\n\t\t} catch\u0020(ParseException\u0020e)\u0020{\n\t\t\te.printStackTrace();\n\t\t}\n\t\treturn\u0020false;\n\t}

Java 获取前一小时内有卡号且swingTime在指定时间范围内的打卡数据

原文地址: https://www.cveoy.top/t/topic/p11w 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录