package com.xxx.xxx.util;import java.text.SimpleDateFormat;
import java.util.*;/*** @author BuShuangLi* @date 2019/5/22*/
public class MissingDateUtil {/*** 查询近几个月的月初和月末* @param num 近五个月 num=5* @return*/public static synchronized List<Map<String, Object>> getRecentMonths(int num){List<Map<String, Object>> maps = new ArrayList<Map<String, Object>>();//当前时所在月份的第一天和最后一天SimpleDateFormat format=new SimpleDateFormat("yyyy-MM");//设置startDateCalendar c = Calendar.getInstance();//设置endDateCalendar c2 = Calendar.getInstance();for (int i = 0; i < num; i++) {HashMap<String, Object> dateMap = new HashMap<String, Object>();//设置start//设置为1号,当前日期既为本月第一天c.set(Calendar.DAY_OF_MONTH,1);//设置为0点0分0秒c.set(c.get(c.YEAR), c.get(c.MONTH), c.get(c.DAY_OF_MONTH), 0, 0, 0);//存入年月显示dateMap.put("yearMonthStr",format.format(c.getTime()));dateMap.put("startDate",c.getTime());//将c 设置为下个月c.add(c.DATE, -1);//设置end 为当前月的月底 23时59分59秒c2.set(Calendar.DAY_OF_MONTH,1);//设置时间 23时59分59秒c2.set(c2.get(c.YEAR), c2.get(c.MONTH), c2.get(c.DAY_OF_MONTH), 23, 59, 59);//获得当前月最后一天c2.add(Calendar.MONTH, 1);c2.set(Calendar.DAY_OF_MONTH, 0);//存入mapdateMap.put("endDate",c2.getTime());//获取当前时间的下一个月c2.add(Calendar.MONTH, -1);//将c2设置为当前时间上一个月c2.set(c.get(c.YEAR), c.get(c.MONTH), c.get(c.DAY_OF_MONTH));//放入集合maps.add(dateMap);}}
}

数据格式

[{endDate = Fri May 31 23: 59: 59 CST 2019,yearMonthStr = 2019 - 05,startDate = Wed May 01 00: 00: 00 CST 2019
}, {endDate = Tue Apr 30 23: 59: 59 CST 2019,yearMonthStr = 2019 - 04,startDate = Mon Apr 01 00: 00: 00 CST 2019
}, {endDate = Sun Mar 31 23: 59: 59 CST 2019,yearMonthStr = 2019 - 03,startDate = Fri Mar 01 00: 00: 00 CST 2019
}, {endDate = Thu Feb 28 23: 59: 59 CST 2019,yearMonthStr = 2019 - 02,startDate = Fri Feb 01 00: 00: 00 CST 2019
}, {endDate = Thu Jan 31 23: 59: 59 CST 2019,yearMonthStr = 2019 - 01,startDate = Tue Jan 01 00: 00: 00 CST 2019
}]

java--获取近几个月的月初和月末相关推荐

  1. Java 获取近七天、近六个月(包含今天,本月)

    获取近七天 List<String> dateList = new ArrayList<>();SimpleDateFormat sdf = new SimpleDateFor ...

  2. JAVA查询近12个月的数据并进行统计

    业务场景 数据库中查询某一段近12个月的数据,但是有的月份无数据,或者有的月份有.如:A在2月份有数据,B在2月份没有.此时如果不从SQL层面查询出来的话则靠业务层写了.或者AB在两月都有.结果如下图 ...

  3. MySQL获取近12个月数据SQL

    ##获取近12个月数据 SELECT TYEAR,TMONTH,CONCAT(SUBSTRING(TYEAR,3),'/',TMONTH) AS T_TIME,MARKETNAME,SJJY_WGDL ...

  4. Java获取最近12个月

    用Java获取最近12个月的名称,以具有12个元素的数组的形式返回: /*** 获取最近12个月,经常用于统计图表的X轴*/public static String[] getLast12Months ...

  5. java获取过去12个月日期

    如有你有个需求,查询过去12个月的税收走势图,不建议你在sql中拼接返回12个月的数据,这样很可能会导致慢sql,建议在java代码中获取日期,然后传入到sql中根据日期去 查询.获取过去12个月月份 ...

  6. Java获取近七天的数据条数,及页面实现折线图(附前后端代码)

    页面效果: 页面代码: //div用来实现折线图<div class="echarts" id="look" style="width:47%; ...

  7. js获取近六个月时间

    // 获取最近六个月 getLastSixMon() {var data = new Date();//获取年var year = data.getFullYear();//获取月var mon = ...

  8. Java用于取得当前日期相对应的月初,月末,季初,季末,年初,年末时间

    package com.zrar.date;2 import java.util.Calendar;3 /**4 * 5 * 描述:此类用于取得当前日期相对应的月初,月末,季初,季末,年初,年末,返回 ...

  9. java显示毫秒改成分钟_【转】java获取当前年、月、日 、小时 、分钟、 秒、 毫秒...

    public classTest {/*** 英文简写(默认)如:2010-12-01*/ public static String FORMAT_SHORT = "yyyy-MM-dd&q ...

最新文章

  1. LabVIEW图像模式匹配(基础篇—11)
  2. 3D姿态估计|时序卷积+半监督训练
  3. mantis在windows下的安装
  4. MySQL高级 之 explain执行计划详解
  5. 打印表单_超市生鲜常用表单,打印出来直接用!(可收藏)
  6. SAP Spartacus Header区域的渲染逻辑
  7. ERROR: Can't get master address from ZooKeeper; znode data == null
  8. python如何不跳行打印_python怎么不换行打印
  9. C/C++ atof函数 - C语言零基础入门教程
  10. Bootstrap输入框组中可以使用的元素
  11. vue ---- filter(vue2才有)
  12. win10分屏快捷键无法使用_win10分屏快捷键如何使用
  13. 卷不能在读/写模式下重新挂载。可能是因为先前没有完全卸载(安全删除)
  14. windows商店_小技巧:微软Windows 10商店如何下载免费HEVC编解码器
  15. 如何多人共同编辑_微信编辑器可以多人协作排版吗?
  16. C语言读写中文时出现乱码的解决
  17. Centos常用基础命令
  18. win10软件拒绝访问删不掉_win10结束进程时拒绝访问的处理办法
  19. 软件接口测试是什么?怎么测?
  20. C语言编程题:寻找孪生素数(附代码)

热门文章

  1. Mathcad tips_波特图绘制
  2. Crack Me逆向练习
  3. 数据结构之平衡树(Treap)
  4. 马云暗讽百度乐天模式:合资难办事
  5. 用canvas画环形图
  6. beego使用CROS允许跨域请求
  7. wifi万能钥匙也出自媒体平台了!
  8. python怎么返回布尔值_尝试从函数返回布尔值
  9. 如何将PDF如何存入MySQL_如何将生成的pdf文件保存到java中的mysql数据...
  10. 网易游戏TTT面试总结