/** * developer : xuyanyun * tel : 139159***** * createTime : 2019/10/10 22:26 * viewName : * remark : * hasBug : unKnown */ public class TestClass { public static void main(String[] args) { String day1 = "2019-08-12"; String day2 = "2020-01-29"; try { List<String> stringList = getMonthBetween(day1, day2); // System.out.println(stringList); JSONArray linkedList = getMonthBetween2(stringList); if (linkedList != null) { JSONObject zeroArray = linkedList.getJSONObject(0); zeroArray.put("start", day1); JSONObject lastArray = linkedList.getJSONObject(linkedList.length() - 1); lastArray.put("end", day2); } for (int i = 0 ; i < linkedList.length() ; i ++){ System.out.println(linkedList.getJSONObject(i).toString()); } } catch (ParseException e) { e.printStackTrace(); } catch (JSONException e) { e.printStackTrace(); } } private static List<String> getMonthBetween(String minDate, String maxDate) throws ParseException { ArrayList<String> result = new ArrayList<String>(); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");//格式化为年月 Calendar min = Calendar.getInstance(); Calendar max = Calendar.getInstance(); min.setTime(sdf.parse(minDate)); min.set(min.get(Calendar.YEAR), min.get(Calendar.MONTH), 1); max.setTime(sdf.parse(maxDate)); max.set(max.get(Calendar.YEAR), max.get(Calendar.MONTH), 2); Calendar curr = min; while (curr.before(max)) { result.add(sdf.format(curr.getTime())); curr.add(Calendar.MONTH, 1); } return result; } private static JSONArray getMonthBetween2(List<String> stringList) { JSONArray jsonArray = new JSONArray(); for (String string : stringList) { try { JSONObject jsonObject = new JSONObject(); jsonObject.put("start", getMinMonthDate(string)); jsonObject.put("end", getMaxMonthDate(string)); jsonObject.put("value", "0"); jsonArray.put(jsonObject); } catch (ParseException e) { e.printStackTrace(); } catch (JSONException e) { e.printStackTrace(); } } return jsonArray; } /** * 获取月份起始日期 * * @param date * @return * @throws ParseException */ public static String getMinMonthDate(String date) throws ParseException { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");//格式化为年月 Calendar calendar = Calendar.getInstance(); calendar.setTime(sdf.parse(date)); calendar.set(Calendar.DAY_OF_MONTH, calendar.getActualMinimum(Calendar.DAY_OF_MONTH)); return sdf.format(calendar.getTime()); } /** * 获取月份最后日期 * * @param date * @return * @throws ParseException */ public static String getMaxMonthDate(String date) throws ParseException { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");//格式化为年月 Calendar calendar = Calendar.getInstance(); calendar.setTime(sdf.parse(date)); calendar.set(Calendar.DAY_OF_MONTH, calendar.getActualMaximum(Calendar.DAY_OF_MONTH)); return sdf.format(calendar.getTime()); } }
根据两个日期获取月头月尾
最新推荐文章于 2024-05-26 20:06:00 发布