/**
* 根据指定时间,计算当月及前几个月的时间列表
* @param day_yyyyMMdd 时间,值为"" 使用系统时间做参数
* @param monthNum 往前推几个月
* @return
*/
private static List<String> getDayList (String day_yyyyMMdd, int monthNum) {
SimpleDateFormat simpleDateFormat = new SimpleDateFormat ( "yyyyMMdd" );
Date date = new Date ( );
try {
if( !StringUtils.isEmpty ( day_yyyyMMdd ) ){
date = simpleDateFormat.parse ( day_yyyyMMdd );
}
} catch (ParseException e) {
e.printStackTrace ();
}
List<String> list = new ArrayList<String> ();
Calendar calendar = Calendar.getInstance ();
for (int num = monthNum; num >= 0 ; num --){
calendar.setTime ( date );
if(num > 0){
calendar.add ( Calendar.MONTH, - num );
Integer year = calendar.get(Calendar.YEAR);//年份
Integer month = calendar.get(Calendar.MONTH) + 1;//月份
Integer day = calendar.getActualMaximum(Calendar.DATE);
String time ;
String monthStr;
String dayStr;
if(month.toString ().length ()==1){
monthStr = "0" + month;
}else{
monthStr = Integer.toString ( month );
}
for (Integer i = 1; i <= day; i++) {
if(i.toString ().length ()==1){
dayStr = "0" + i;
}else{
dayStr = Integer.toString ( i );
}
time = String.valueOf(year) + monthStr + dayStr;
list.add(time);
}
}else {
Integer year = calendar.get(Calendar.YEAR);//年份
Integer month = calendar.get(Calendar.MONTH) + 1;//月份
Integer day = calendar.get ( Calendar.DAY_OF_MONTH ) - 1;
String time ;
String monthStr;
String dayStr;
if(month.toString ().length ()==1){
monthStr = "0" + month;
}else{
monthStr = Integer.toString ( month );
}
for (Integer i = 1; i <= day; i++) {
if(i.toString ().length ()==1){
dayStr = "0" + i;
}else{
dayStr = Integer.toString ( i );
}
time = String.valueOf(year) + monthStr + dayStr;
list.add(time);
}
}
}
System.out.println (list);
return list;
}