获取当前时间的所在季度开始结束日期

/*** 计算某日期所在季度开始日期* 季度划分:1、2、3, 4、5、6, 7、8、9, 10、11、12*/public static Date getSeasonEndDate (Date date) {Calendar calendar = Calendar.getInstance();calendar.setTime(date);int month = calendar.get(Calendar.MONTH);calendar.set(Calendar.MONTH, (month + 3) / 3 * 3);calendar.set(Calendar.DATE, 1);return new Date(calendar.getTime().getTime() - 24 * 60 * 60 *1000);}/*** 计算某日期所在季度结束日期* 季度划分:1、2、3, 4、5、6, 7、8、9, 10、11、12*/public static Date getSeasonStartDate (Date date) {Calendar calendar = Calendar.getInstance();calendar.setTime(date);int month = calendar.get(Calendar.MONTH);calendar.set(Calendar.MONTH, month / 3 * 3);calendar.set(Calendar.DATE, 1);return calendar.getTime();}

获取当前日期上一季度开始结束日期时间

  /*** 获取当前日期上一季度 开始时间** @return*/public static Date getStartQuarter(Date date) {Calendar startCalendar = Calendar.getInstance();startCalendar.setTime(date);startCalendar.set(Calendar.MONTH, ((int) startCalendar.get(Calendar.MONTH) / 3 - 1) * 3);startCalendar.set(Calendar.DAY_OF_MONTH, 1);setMinTime(startCalendar);return startCalendar.getTime();}/*** 获取当前日期上一季度 结束时间*当前日期为31号存在bug已修复* @return*/public static Date getLastQuarter(Date date) {Calendar endCalendar = Calendar.getInstance();endCalendar.setTime(date);int month = endCalendar.get(Calendar.MONTH);endCalendar.set(Calendar.MONTH, (month/ 3 - 1) * 3 + 3);endCalendar.set(Calendar.DATE, 1);return new Date(endCalendar.getTime().getTime() - 24 * 60 * 60 *1000);}/*** 最小时间** @param calendar*/private static void setMinTime(Calendar calendar) {calendar.set(Calendar.HOUR_OF_DAY, 0);calendar.set(Calendar.MINUTE, 0);calendar.set(Calendar.SECOND, 0);calendar.set(Calendar.MILLISECOND, 0);}/*** 最大时间** @param calendar*/private static void setMaxTime(Calendar calendar) {calendar.set(Calendar.HOUR_OF_DAY, calendar.getActualMaximum(Calendar.HOUR_OF_DAY));calendar.set(Calendar.MINUTE, calendar.getActualMaximum(Calendar.MINUTE));calendar.set(Calendar.SECOND, calendar.getActualMaximum(Calendar.SECOND));calendar.set(Calendar.MILLISECOND, calendar.getActualMaximum(Calendar.MILLISECOND));}/**
*验证
**/
@Testpublic void test3(){SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");try {System.out.println("当前日期 :2022-12-31");System.out.println(" 获取当前日期上一季度 结束时间"+sdf.format(getLastQuarter(sdf.parse("2022-12-31"))));System.out.println(" 获取当前日期上一季度 开始时间"+sdf.format(getStartQuarter(sdf.parse("2022-12-31"))));System.out.println(" 获取当前日期所在季度 开始时间"+sdf.format(getSeasonStartDate(sdf.parse("2022-12-31"))));System.out.println(" 获取当前日期所在季度 结束时间"+sdf.format(getSeasonEndDate(sdf.parse("2022-12-31"))));} catch (ParseException e) {e.printStackTrace();}}

结果

之前有存在31号bug情况,现在修复啦,感谢各位大佬指教~

Java:获取当前日期当前季度、上一季度开始结束日期时间相关推荐

  1. java获取当前日期所在周的周六、周日日期

    /*** 获取当前日期所在周的周六日期* @return String 格式 yyyy-MM-dd*/ public static String getSaturdayDate() {SimpleDa ...

  2. java获取前四个季度结束日期_JAVA使用LocalDate获取当前日期所在季度的开始日期和结束日期...

    需要使用jdk1.8及以上 /** * 获取当前日期所在季度的开始日期和结束日期 * 季度一年四季, 第一季度:1月-3月, 第二季度:4月-6月, 第三季度:7月-9月, 第四季度:10月-12月 ...

  3. 如何使用Java获取当前日期/时间

    用Java获取当前日期/时间的最佳方法是什么? #1楼 采用: String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss") ...

  4. java获取当前日期和时间的二种方法分享

    有两种方法: 方法一:用java.util.Date类来实现,并结合java.text.DateFormat类来实现时间的格式化,看下面代码: import java.util.*; import j ...

  5. Java获取当前日期的前一天

    Java获取当前日期的前一天 //获取当前日期Date date = new Date();//格式转换SimpleDateFormat f = new SimpleDateFormat(" ...

  6. Java 获取当前时间之后的第一个周几,java获取当前日期的下一个周几

    Java 获取当前时间之后的第一个周几,java获取当前日期的下一个周几 //获得入参的日期 Calendar cd = Calendar.getInstance(); cd.setTime(date ...

  7. java获取当前日期 星期几_java获取当前日期是星期几的方法

    java获取当前日期是星期几的方法 发布时间:2020-06-29 11:16:15 来源:亿速云 阅读:133 作者:Leah 本篇文章为大家展示了java获取当前日期是星期几的方法,代码简明扼要并 ...

  8. java获取当前日期 前后 几个月的 日期期间 往前 2个月 往后 2个月

    java获取当前日期 前后 几个月的 日期期间 需要原因 返回的String 格式 private Map<String,String> getDuringDate(){SimpleDat ...

  9. Java 获取当前日期和时间

    有两种方法: 方法一:用java.util.Date类来实现,并结合java.text.DateFormat类来实现时间的格式化,看下面代码: import java.util.; import ja ...

最新文章

  1. 你还不会创建jQuery插件 ?
  2. 阿里云宣布 Serverless 容器服务 弹性容器实例 ECI 正式商业化
  3. linux bc命令全称,Linux bc 命令
  4. LeetCode 题 - 27. 移除元素 python实现
  5. FireFox nsSessionStore.js 问题报错解决
  6. python3入门代码-Python3入门(十三)——连接数据库
  7. Android IPC(三)AIDL实现跨进程通信
  8. Birth-Death process 生灭过程
  9. Altium designer--LM317/LM337封装图
  10. c++ 随机生成数独(不保证唯一解)
  11. SAP 发票凭证反向冲销
  12. 学习金字塔:输出式主动学习
  13. android中app分享小程序卡片及跳转回app
  14. 微信公众号带场景参数的二维码生成与使用?
  15. 基于STM32开发可燃气体智慧检测系统
  16. 基于JAVA罪犯信息管理系统计算机毕业设计源码+系统+数据库+lw文档+部署
  17. M3U8在线MP4格式
  18. 面试官问我:未来五年的职业规划..我是这样回答的
  19. E4A第二期-微型计算器
  20. ubuntu 18.04更换为国内更新源

热门文章

  1. 飞凌imx6dl lvds闪屏问题记录
  2. Windows应用、注册表
  3. 蚂蚁金服更名 一场有关数字科技的阳谋!
  4. 计算机网络——DNS域名解析服务器原理
  5. 软件自动更新功能的实现
  6. html 转pdf 之wkhtmltopdf
  7. 最大公约数 (20 分) 第三个测试点
  8. 【分享】过来人告诫研一学生:研一生活如何过才叫精彩!(转)
  9. windows 7 x64 下的 System Call
  10. Python 多线程爬虫