返回两个时间段内的季度
参考文章:https://www.cnblogs.com/caoyingjielxq/p/9426972.html
public static Date parse(String string, String patern){ SimpleDateFormat simpleDateFormat = new SimpleDateFormat(patern); try { Date parse = simpleDateFormat.parse(string); return parse; } catch (ParseException e) { e.printStackTrace(); } return null; }
/**
* 返回两个时间段内,季度的字符串
* @param minDate
* @param maxDate
* @return
*/
public static List<String> getMonthBetweenDates(String minDate, String maxDate){ ArrayList<String> result = new ArrayList<String>(); //HashSet<String> strings = new HashSet<>(); HashMap<String, Integer> map = new HashMap<>(); Calendar min = Calendar.getInstance(); Calendar max = Calendar.getInstance(); min.setTime(parse(minDate,"yyyy-MM-dd")); min.set(min.get(Calendar.YEAR), min.get(Calendar.MONTH), 1); max.setTime(parse(maxDate,"yyyy-MM-dd")); max.set(max.get(Calendar.YEAR), max.get(Calendar.MONTH), 2); Calendar curr = min; int i = 1; while (curr.before(max)) { //result.add(format(curr.getTime(),"yyyy-MM-dd")); String season1 = getSeason1(curr.getTime()); map.put(season1, i); curr.add(Calendar.MONTH, 1); i++; } ArrayList<Map.Entry<String, Integer>> entries = new ArrayList<>(map.entrySet()); Collections.sort(entries, new Comparator<Map.Entry<String, Integer>>() { @Override public int compare(Map.Entry<String, Integer> o1, Map.Entry<String, Integer> o2) { return o1.getValue().compareTo(o2.getValue()); } }); for (Map.Entry<String, Integer> entry : entries){ result.add(entry.getKey()); } return result; } /** * * 1 第一季度 2 第二季度 3 第三季度 4 第四季度 * * @param date * @return */ public static String getSeason1(Date date) { int season = 0; String seasonString = ""; Calendar c = Calendar.getInstance(); c.setTime(date); int month = c.get(Calendar.MONTH); int year = c.get(Calendar.YEAR); switch (month) { case Calendar.JANUARY: case Calendar.FEBRUARY: case Calendar.MARCH: season = 1; seasonString = year + "年第一季度"; break; case Calendar.APRIL: case Calendar.MAY: case Calendar.JUNE: season = 2; seasonString = year + "年第二季度"; break; case Calendar.JULY: case Calendar.AUGUST: case Calendar.SEPTEMBER: season = 3; seasonString = year + "年第三季度"; break; case Calendar.OCTOBER: case Calendar.NOVEMBER: case Calendar.DECEMBER: season = 4; seasonString = year + "年第四季度"; break; default: break; } return seasonString; }
------------恢复内容结束------------
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)