1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > Java:获取当前日期当前季度 上一季度开始结束日期时间

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

时间:2023-11-07 20:00:13

相关推荐

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

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

/*** 计算某日期所在季度开始日期* 季度划分: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("当前日期 :-12-31");System.out.println(" 获取当前日期上一季度 结束时间"+sdf.format(getLastQuarter(sdf.parse("-12-31"))));System.out.println(" 获取当前日期上一季度 开始时间"+sdf.format(getStartQuarter(sdf.parse("-12-31"))));System.out.println(" 获取当前日期所在季度 开始时间"+sdf.format(getSeasonStartDate(sdf.parse("-12-31"))));System.out.println(" 获取当前日期所在季度 结束时间"+sdf.format(getSeasonEndDate(sdf.parse("-12-31"))));} catch (ParseException e) {e.printStackTrace();}}

结果

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

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。