网站有几类,天元建设集团有限公司 李增启,wordpress菜单显示,安阳县地图高清全图描述#xff1a;
在项目开发过程中#xff0c;遇到这样一个需求#xff0c;即#xff1a;给定某一月份#xff0c;得到该月份前面的几个月份以及前面的几个季度。例如#xff1a;给定2023-09#xff0c;获取该月份前面的前3个月#xff0c;即2023-08、2023-07、2023-0…描述
在项目开发过程中遇到这样一个需求即给定某一月份得到该月份前面的几个月份以及前面的几个季度。例如给定2023-09获取该月份前面的前3个月即2023-08、2023-07、2023-06以及该月份的前3个季度即2023-06、2023-03、2022-12。
代码
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.List;public class Test {public static void main(String[] args) {System.out.println(getMonthDate(2023-2, 5));System.out.println(getQuarterDate(2023-2, 4));}/*** 获取给定日期的前Num个月份* param strDate 日期* param num 个数* return*/public static ListString getMonthDate(String strDate, int num){ListString monthList new ArrayList();for(int i0; i num; i){monthList.add(generatePreDate(strDate, i));}return monthList;}/*** 获取给定日期的前Num个季度* param strDate 日期* param num 个数* return*/public static ListString getQuarterDate(String strDate, int num){strDate judgeQuarter(strDate);ListString quarterList new ArrayList();for (int i 0; i num; i) {quarterList.add(generatePreDate(strDate, i * 3));}return quarterList;}/*** 判断月份属于哪个季度* param date* return*/public static String judgeQuarter(String date){String[] strs date.split(-);String result strs[0] -;int month Integer.parseInt(strs[1]);if(month 1 month 3){result 03;}if(month 4 month 6){result 06;}if(month 7 month 9){result 09;}if(month 10 month 12){result 12;}return result;}public static String generatePreDate(String strDate, int num){String stringDate;try {SimpleDateFormat formatter new SimpleDateFormat(yyyy-MM);Date monthformatter.parse(strDate);Calendar calendar Calendar.getInstance();//得到Calendar实例calendar.setTime(month);calendar.add(Calendar.MONTH, -num);Date starDate calendar.getTime();//得到时间赋给DatastringDate formatter.format(starDate);//使用格式化Datareturn stringDate;}catch (Exception e){e.printStackTrace();return stringDate;}}
}实现结果