1 /** 2 * 获取过去的12个月 当dateSource为空时获取的当前月份之前的十二个月,不为空时获取指定月份之前的十二个月 3 */ 4 public static String[] getPastTwelveYearMonth(String dateSource) { 5 String[] lastTwelveMonths = new String[12]; 6 Calendar calendar = Calendar.getInstance(); 7 //如果当前日期大于二月份的天数28天或者29天会导致计算月份错误,会多出一个三月份,故设置一个靠前日期解决此问题 8 calendar.set(Calendar.DAY_OF_MONTH, 1); 9 if (!FCRMStringUtils.isEmpty(dateSource)) { 10 calendar = setTime(dateSource); 11 } 12 for (int i = 0; i < 12; i++) { 13 if (calendar.get(Calendar.MONTH) != 0) { 14 if (calendar.get(Calendar.MONTH) > 0 && calendar.get(Calendar.MONTH) < 10) { 15 lastTwelveMonths[11 - i] = calendar.get(Calendar.YEAR) + "-0" + (calendar.get(Calendar.MONTH)); 16 } else { 17 lastTwelveMonths[11 - i] = calendar.get(Calendar.YEAR) + "-" + (calendar.get(Calendar.MONTH)); 18 } 19 } else { 20 lastTwelveMonths[11 - i] = calendar.get(Calendar.YEAR) - 1 + "-" + 12; 21 } 22 //逐次往前推1个月 23 calendar.set(Calendar.MONTH, calendar.get(Calendar.MONTH) - 1); 24 } 25 for (int i = 0; i < lastTwelveMonths.length; i++) { 26 System.out.println(lastTwelveMonths[i]); 27 } 28 return lastTwelveMonths; 29 } 30 31 /** 32 * 获取过去的3个月 当dateSource为空时获取的当前月份之前的三个月,不为空时获取指定月份之前的十三个月 33 */ 34 public static String[] getPastThreeYearMonth(String dateSource) { 35 String[] lastThreeMonths = new String[3]; 36 Calendar calendar = Calendar.getInstance(); 37 //如果当前日期大于二月份的天数28天或者29天会导致计算月份错误,会多出一个三月份,故设置一个靠前日期解决此问题 38 calendar.set(Calendar.DAY_OF_MONTH, 1); 39 if (!FCRMStringUtils.isEmpty(dateSource)) { 40 calendar = setTime(dateSource); 41 } 42 for (int i = 0; i < 3; i++) { 43 if (calendar.get(Calendar.MONTH) != 0) { 44 if (calendar.get(Calendar.MONTH) > 0 && calendar.get(Calendar.MONTH) < 10) { 45 lastThreeMonths[2 - i] = calendar.get(Calendar.YEAR) + "-0" + (calendar.get(Calendar.MONTH)); 46 } else { 47 lastThreeMonths[2 - i] = calendar.get(Calendar.YEAR) + "-" + (calendar.get(Calendar.MONTH)); 48 } 49 } else { 50 lastThreeMonths[2 - i] = calendar.get(Calendar.YEAR) - 1 + "-" + 12; 51 } 52 //逐次往前推1个月 53 calendar.set(Calendar.MONTH, calendar.get(Calendar.MONTH) - 1); 54 } 55 for (int i = 0; i < lastThreeMonths.length; i++) { 56 System.out.println(lastThreeMonths[i]); 57 } 58 return lastThreeMonths; 59 } 60 61 /** 62 * 获取指定月份的Calendar对象 63 * 64 * @param dateSource 65 * @return 66 */ 67 private static Calendar setTime(String dateSource) { 68 // 创建 Calendar 对象 69 // 默认是当前日期 70 Calendar calendar = Calendar.getInstance(); 71 try { 72 // 对 calendar 设置时间的方法 73 // 设置传入的时间格式 74 SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM"); 75 // 指定一个日期 76 Date date = dateFormat.parse(dateSource); 77 // 对 calendar 设置为 date 所定的日期 78 calendar.setTime(date); 79 } catch (Exception e) { 80 e.printStackTrace(); 81 } 82 return calendar; 83 }
1 /** 2 * 获取当前月份的前一个月 3 * 4 * @return 5 */ 6 public static String getPreviousOneMonthString() { 7 Calendar calendar = Calendar.getInstance(); 8 SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM"); 9 calendar.setTime(new Date()); 10 calendar.add(Calendar.MONTH, -1); 11 Date date = calendar.getTime(); 12 String month = dateFormat.format(date); 13 return month; 14 } 15 16 /** 17 * 获取当前月份的下一个月 18 * 19 * @return 20 */ 21 public static String getNextOneMonthString(String StrMonth) { 22 Calendar calendar; 23 if(FCRMStringUtils.isNotEmpty(StrMonth)){ 24 calendar = setTime(StrMonth); 25 }else{ 26 calendar = Calendar.getInstance(); 27 calendar.setTime(new Date()); 28 } 29 SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM"); 30 calendar.add(Calendar.MONTH, 1); 31 Date date = calendar.getTime(); 32 String month = dateFormat.format(date); 33 return month; 34 } 35 36 /** 37 * 获取当前月份 38 * 39 * @return 40 */ 41 public static String getPresentMonthString() { 42 Calendar calendar = Calendar.getInstance(); 43 SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM"); 44 calendar.setTime(new Date()); 45 Date date = calendar.getTime(); 46 String month = dateFormat.format(date); 47 return month; 48 }