1 /** 2 * 获取当前日期所在季度的开始日期和结束日期 3 * 季度一年四季, 第一季度:1月-3月, 第二季度:4月-6月, 第三季度:7月-9月, 第四季度:10月-12月 4 * @param isFirst true表示查询本季度开始日期 false表示查询本季度结束日期 5 * @return 6 */ 7 public static LocalDate getStartOrEndDayOfQuarter(Boolean isFirst){ 8 LocalDate today=LocalDate.now(); 9 LocalDate resDate = LocalDate.now(); 10 if (today == null) { 11 today = resDate; 12 } 13 Month month = today.getMonth(); 14 Month firstMonthOfQuarter = month.firstMonthOfQuarter(); 15 Month endMonthOfQuarter = Month.of(firstMonthOfQuarter.getValue() + 2); 16 if (isFirst) { 17 resDate = LocalDate.of(today.getYear(), firstMonthOfQuarter, 1); 18 } else { 19 resDate = LocalDate.of(today.getYear(), endMonthOfQuarter, endMonthOfQuarter.length(today.isLeapYear())); 20 } 21 return resDate; 22 } 23 //获取当前季度 24 public static String getQuarterByDate(String date) throws ParseException { 25 if(date == ""|| "".equals(date)){ 26 return ""; 27 } 28 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); 29 Date datePar = sdf.parse(date); 30 Calendar calendar = Calendar.getInstance(); 31 calendar.setTime(datePar); 32 33 String year = String.valueOf(calendar.get(Calendar.YEAR)); 34 int mouth = datePar.getMonth()+1; 35 36 if(mouth>=1 && mouth<=3){ 37 return year + "年第一季度"; 38 }else if(mouth>=4 && mouth<=6){ 39 return year + "年第二季度"; 40 }else if(mouth>=7 && mouth<=9){ 41 return year + "年第三季度"; 42 }else if(mouth>=10 && mouth<=12){ 43 return year + "年第四季度"; 44 }else{ 45 return ""; 46 } 47 } 48 49 /** 50 * 获取当期季度的天数 51 * @param cntDateBeg 开始时间 52 * @param cntDateEnd 结束时间 53 * @return 54 */ 55 public static List<String> addDates(String cntDateBeg, String cntDateEnd) { 56 List<String> list = new ArrayList<>(); 57 String[] dateBegs = cntDateBeg.split("-"); 58 String[] dateEnds = cntDateEnd.split("-"); 59 Calendar start = Calendar.getInstance(); 60 start.set(Integer.valueOf(dateBegs[0]), Integer.valueOf(dateBegs[1]) - 1, Integer.valueOf(dateBegs[2])); 61 Long startTIme = start.getTimeInMillis(); 62 Calendar end = Calendar.getInstance(); 63 end.set(Integer.valueOf(dateEnds[0]), Integer.valueOf(dateEnds[1]) - 1, Integer.valueOf(dateEnds[2])); 64 Long endTime = end.getTimeInMillis(); 65 Long oneDay = 1000 * 60 * 60 * 24l; 66 Long time = startTIme; 67 while (time <= endTime) { 68 Date d = new Date(time); 69 DateFormat df = new SimpleDateFormat("yyyy-MM-dd"); 70 time += oneDay; 71 list.add(df.format(d)); 72 } 73 return list; 74 }