啪啪啪的写了一大堆,具体写的啥我也没看懂

记录一下吧,下次没准用到了翻翻自己的博客

程序员的逻辑:一步一个脚印,走完发现感觉不像自己走的

代码量很多,过程很复杂,思路很清晰,可能大佬有更简单的方法

废话不多说了,直接上代码

工具类

 /*** 用途:以指定的格式格式化日期字符串** @param pattern     字符串的格式* @param currentDate 被格式化日期* @return String 已格式化的日期字符串* @throws NullPointerException 如果参数为空*/public String formatDate(Date currentDate, String pattern) {if (currentDate == null || "".equals(pattern) || pattern == null) {return null;}SimpleDateFormat sdf = new SimpleDateFormat(pattern);return sdf.format(currentDate);}public String[] getCurrQuarter(int num) {String[] s = new String[2];String str = "";// 设置本年的季Calendar quarterCalendar = null;switch (num) {case 1: // 本年到现在经过了一个季度,在加上前4个季度quarterCalendar = Calendar.getInstance();quarterCalendar.set(Calendar.MONTH, 3);quarterCalendar.set(Calendar.DATE, 1);quarterCalendar.add(Calendar.DATE, -1);str = DateUtils.formatDate(quarterCalendar.getTime(), "yyyy-MM-dd");s[0] = str.substring(0, str.length() - 5) + "01-01";s[1] = str;break;case 2: // 本年到现在经过了二个季度,在加上前三个季度quarterCalendar = Calendar.getInstance();quarterCalendar.set(Calendar.MONTH, 6);quarterCalendar.set(Calendar.DATE, 1);quarterCalendar.add(Calendar.DATE, -1);str = DateUtils.formatDate(quarterCalendar.getTime(), "yyyy-MM-dd");s[0] = str.substring(0, str.length() - 5) + "04-01";s[1] = str;break;case 3:// 本年到现在经过了三个季度,在加上前二个季度quarterCalendar = Calendar.getInstance();quarterCalendar.set(Calendar.MONTH, 9);quarterCalendar.set(Calendar.DATE, 1);quarterCalendar.add(Calendar.DATE, -1);str = DateUtils.formatDate(quarterCalendar.getTime(), "yyyy-MM-dd");s[0] = str.substring(0, str.length() - 5) + "07-01";s[1] = str;break;case 4:// 本年到现在经过了四个季度,在加上前一个季度quarterCalendar = Calendar.getInstance();quarterCalendar.add(Calendar.YEAR, -1);quarterCalendar.set(Calendar.MONTH, 12);quarterCalendar.set(Calendar.DATE, 1);quarterCalendar.add(Calendar.DATE, -1);str = DateUtils.formatDate(quarterCalendar.getTime(), "yyyy-MM-dd");s[0] = str.substring(0, str.length() - 5) + "10-01";s[1] = str;break;}return s;}/*** 获取某年第一天日期** @param year 年份* @return Date*/public Date getYearFirst(int year) {Calendar calendar = Calendar.getInstance();calendar.clear();calendar.set(Calendar.YEAR, year);Date currYearFirst = calendar.getTime();return currYearFirst;}/*** 获取某年最后一天日期** @param year 年份* @return Date*/public Date getYearLast(int year) {Calendar calendar = Calendar.getInstance();calendar.clear();calendar.set(Calendar.YEAR, year);calendar.roll(Calendar.DAY_OF_YEAR, -1);Date currYearLast = calendar.getTime();return currYearLast;}

获取开始结束日期

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");Calendar cal = Calendar.getInstance();Date startTime = null;Date endTime = null;//获取年int year = cal.get(Calendar.YEAR);//获取当前月int month = cal.get(Calendar.MONTH) + 1;try {if (assessPeriod.equals("季度")) {if (month == 1 || month == 2 || month == 3) {String[] quarter = DateUtils.getCurrQuarter(4);startTime = sdf.parse(quarter[0]);endTime = sdf.parse(quarter[1]);} else if (month == 4 || month == 5 || month == 6) {String[] quarter = DateUtils.getCurrQuarter(1);startTime = sdf.parse(quarter[0]);endTime = sdf.parse(quarter[1]);} else if (month == 7 || month == 8 || month == 9) {String[] quarter = DateUtils.getCurrQuarter(2);startTime = sdf.parse(quarter[0]);endTime = sdf.parse(quarter[1]);} else {String[] quarter = DateUtils.getCurrQuarter(3);startTime = sdf.parse(quarter[0]);endTime = sdf.parse(quarter[1]);}}} catch (Exception e) {e.printStackTrace();}if (assessPeriod.equals("半年")) {try {//获取月份if (month > 6) {//获取上半年的第一天startTime = DateUtils.getYearFirst(year);endTime = sdf.parse((year) + "-06-30");} else {//获取去年下半年的起始日期startTime = sdf.parse((year - 1) + "-06-30");endTime = DateUtils.getYearLast(year - 1);}} catch (ParseException e) {e.printStackTrace();}}if (assessPeriod.equals("一年")) {//获取上一周期年的第一天startTime = DateUtils.getYearFirst(year - 1);//获取上一周期年的最后一天endTime = DateUtils.getYearLast(year - 1);}

JAVA_获取每年、每季度的第一天,最后一天_一蓑烟雨任平生相关推荐

  1. java 和 mysql 获取周 星期 的第一天 最后一天 或者 月的 日期(字符串转日期,日期转字符串,日期加减)...

    获取周的第一天,最后一天 System.out.println(getStartEndDate("2016-05-01", 1)); 获取星期的第一天和最后一天 System.ou ...

  2. Java实现获取某年某月第一天最后一天

    一.某月第一天 /*** 获取某年某月的第一天*/public static String getFisrtDayOfMonth(int year,int month){Calendar cal = ...

  3. mysql 获取本月/上月/下月第一天/最后一天

    select curdate(); -- 获取当前日期 select last_day(curdate()); -- 获取当月最后一天. select DATE_ADD(curdate(),inter ...

  4. 帆软获取上月的第一天与最后一天_【游戏攻略】第三天功力提升汇总,教你获取家具图纸,3倍绑点赚取不看即亏!...

    观众老爷们,天刀大嘴巴今日起开始更新,很多小伙伴都是大嘴巴的老朋友们了,在这里我将会为你们持续更新关于天刀手游的一系列玩法攻略和各种你想知道的东西! 1.常见问题Q&A Q:今天开放了42副本 ...

  5. 获取周/月的第一天最后一天

    一.指定日期所在周的第一天.最后一天 1 /** 2 * [getWeekDays 返回指定日期所在周的第一天和最后一天] 3 * @param [type] $date [日期] 4 * @retu ...

  6. 帆软获取上月的第一天与最后一天_《原神》岩港打工第一天怎么玩 岩港打工第一天玩法攻略...

    <原神>在11月2日开启了岩港奇珍行记,玩家可以在璃月港进行打工了,可能有的小伙伴还不清楚第一天的打工要怎么做,所以小编这次就为大家带来了<原神>岩港打工第一天玩法攻略,感兴趣 ...

  7. java8的LocalDateTime获取当前月的第一天与最后一天

    LocalDateTime date = LocalDateTime.now(); LocalDateTime firstday = date.with(TemporalAdjusters.first ...

  8. Java_搭建MQTT服务器_一蓑烟雨任平生

    文章目录 前言 一.下载 二.双击解压 三.bin目录创建自己的服务 运行后设置账号密码 四.运行 cd来到你的目录下 启动 结果 总结 前言 一.下载 MQTT官网 二.双击解压 获得解压文件 三. ...

  9. oracle取去年的最后一天,oracle本月、上月、去年同月第一天最后一天

    select trunc(sysdate, 'month') 本月第一天, trunc(last_day(sysdate)) 本月最后一天, trunc(add_months(sysdate, -1) ...

最新文章

  1. JavaScript基础14-day16【事件委派、事件绑定、事件传播、滚轮事件、键盘事件、键盘移动div】
  2. 线性回归和logistic回归
  3. java提示框easyui风格_EasyUI 标签框风格(TagBox Style)_Vue EasyUI Demo
  4. linux 三维数据绘图软件,Linux下开发基于.NET的三维绘图程序
  5. Qt 中实现在控件中点击鼠标,就在鼠标点击处加载图片的方法
  6. python ssh库paramiko学习
  7. python学习-3.一些常用模块用法
  8. 微信防撤回补丁来了!更新也不会失效
  9. 计算机网络密码凭据,电脑无法上网时总是提示需要输入网络密码如何解决
  10. Vunlhub_Eearth
  11. 判断邮箱的正则表达式
  12. ffmpeg ——下载与安装
  13. 基于php二手书交易系统,二手书交易系统论文.doc
  14. 中国电力集团公司旗下电厂分布
  15. mysql拒绝访问root用户_对于出现拒绝访问root用户的解决方案
  16. 【找不到SQL Server ODBC 驱动程序的安装例程】的解决
  17. Codeforces Round #549 (Div. 2) D. The Beatles
  18. QQ2011安装写至文件错误
  19. C#生成微信小程序文章二维码
  20. objectarx + QT

热门文章

  1. android 上面月亮模式,玩安卓套路?月亮模式与息屏显示,iPhone13爆料多可信?...
  2. 云场景实践研究第68期:货车帮
  3. 上市后的第一份财报,藏着满帮的两把双刃剑
  4. 显微镜自动聚焦原理是什么_显微镜的工作原理是什么?
  5. 如何将多个py文件打包成exe格式
  6. 2020考研 一战暨南大学计算机专硕上岸经验贴
  7. 无线学习:名词解释【无线学习笔记一】
  8. 我的世界java老崩溃怎么办_我的世界总是崩溃怎么办 我的世界无法正常启动崩溃解决方法...
  9. React 绑定事件为什么会丢失this? 和如何解决绑定事件this指向问题
  10. Android源码大招