AI智能
改变未来

Java之时间处理(当前年的上一年、上一季度、当月、当季)


一、当前年的上一年

核心代码:

public static String getYearBefore() {SimpleDateFormat formats = new SimpleDateFormat(\"yyyy\");Calendar c = Calendar.getInstance();c.add(Calendar.YEAR, -1);Date date = c.getTime();return formats.format(date);}

二、上一季度

核心代码:

/*** 获取上一季度 开始和结束时间** @return*/public static DateRange getLastQuarter() {Calendar startCalendar = Calendar.getInstance();startCalendar.set(Calendar.MONTH, ((int) startCalendar.get(Calendar.MONTH) / 3 - 1) * 3);startCalendar.set(Calendar.DAY_OF_MONTH, 1);setMinTime(startCalendar);Calendar endCalendar = Calendar.getInstance();endCalendar.set(Calendar.MONTH, ((int) endCalendar.get(Calendar.MONTH) / 3 - 1) * 3 + 2);endCalendar.set(Calendar.DAY_OF_MONTH,56cendCalendar.getActualMaximum(Calendar.DAY_OF_MONTH));setMaxTime(endCalendar);return new DateRange(startCalendar.getTime(), endCalendar.getTime());}/*** 最小时间** @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));}

DateRange.java:

@Data@NoArgsConstructor@AllArgsConstructorpublic class DateRange {private Date start;private Date end;}

三、当月

核心代码:

/*** 获取当月(开始时间)** @return*/public static String getCurrentMonthStartDate() {// 获取当前年份、月份、日期Calendar cale = null;// 获取当月第一天SimpleDateFormat format = new SimpleDateFormat(\"yyyyMMdd\");String firstday;cale = Calendar.getInstance();cale.add(Calendar.MONTH, 0);cale.set(Calendar.DAY_OF_MONTH, 1);firstday = format.format(cale.getTime());return firstday;}/*** 获取当月(结束时间)** @return*/public static String getCurrentMonthEndDate() {// 获取当前年份、月份、日期Calendar cale = null;// 获取当月最后一天SimpleDateFormat format = new SimpleDateFormat(\"yyyyMMdd\");String lastday;cale = Calendar.getInstance();cale.add(Calendar.MONTH, 1);cale.set(Calendar.DAY_OF_MONTH, 0);lastday = format.format(cale.getTime());return lastday;}

四、当季

核心代码:

/*** 获取当季** @return*/public static DateRange getThisQuarter() {Calendar startCalendar = Calendar.getInstance();startCalendar.set(Calendar.MONTH, ((int) startCalendar.get(Calendar.MONTH) / 3) * 3);startCalendar.set(Calendar.DAY_OF_MONTH, 1);setMinTime(startCalendar);Calendar endCalendar = Calendar.getInstance();endCalendar.set(Calendar.MONTH, ((int) startCalendar.get(Calendar.MONTH) / 3) * 3 + 2);endCalendar.set(Calendar.DAY_OF_MONTH, endCalendar.getActualMaximum(Calendar.DAY_OF_MONTH));setMaxTime(endCalendar);return new DateRange(startCalendar.getTime(), endCalendar.getTime());}

赞(0) 打赏
未经允许不得转载:爱站程序员基地 » Java之时间处理(当前年的上一年、上一季度、当月、当季)