我晕~~~~~~~~忘记说了,顺序可以错乱,只要有必须的年份和月份就可以。
自己想出来了。郁闷~~~~~~~~不过,觉得好乱,有兴趣的英雄们,帮我优化一下吧!
public List getDate()throws Exception//获取200412~~~当前的所有日期
{
    List list = new ArrayList();
String recdate = new SimpleDateFormat("yyyyMMddHHmmss", Locale.SIMPLIFIED_CHINESE).format(new Date());    String first = "200412"; 
    list.add(first);
    
    String other = "";
    for(int n=(Integer.parseInt(recdate.substring(4,6)));Integer.parseInt(Integer.toString(n))<=12 && n >0;n--)
    {
     if(n<10)
         other = recdate.substring(0,4)+"0"+Integer.toString(n);
     else
         other = recdate.substring(0,4)+Integer.toString(n);
     list.add(other);
    }
    if((Integer.parseInt(recdate.substring(0,4))-2005)>=1)
    {
        for(int i=(Integer.parseInt(recdate.substring(0,4))-2005);i>0;i--)
        {
            for(int j=1;j<13;j++)
            {
                String mid ="";
                if(j<10)
                    mid = Integer.toString((2004+i))+"0"+Integer.toString(j);
                else
                    mid = Integer.toString((2004+i))+Integer.toString(j);
                list.add(mid);
            }
        }
    }
    return list;
}

解决方案 »

  1.   

    public List getDate(){
    List dates = new ArrayList();
    Date curDate = Calendar.getInstance().getTime();
    SimpleDateFormat dateFormatter = new SimpleDateFormat("yyyyMM");
    String dateStr = dateFormatter.format(curDate);
    String year = dateStr.substring(0,4);
    String month = dateStr.substring(4,6);
    int monthInt = Integer.parseInt(month);
    for(int i=0;i<monthInt;i++){
    if(i<10){
    dates.add(year + "0" + i);
    }else{
    dates.add(year + i);
    }
    }
    return dates;
    }
      

  2.   

    用Calendar不就行了吗?
    看不懂...