不要使用Calendar的MONTH,DAY OF MONTH等等
用java.text.SimpleDateFormat

解决方案 »

  1.   

    calendar.set(Calendar.MONTH,i);
    因为你只设置月份 日期美设置好 超出的部分累计到下一个月
    你应该把日期也打印出来 你就知道 怎么回事了
      

  2.   

    我一看到题目就知道你问什么了,所以我没有看你的问题。
    我知告诉你java里面的月份是从 0--11的。
      

  3.   

    是吗,看了 wjmmml的解释,省得看那么多字了.
      

  4.   

    1.java里边的月份是0---11.
    2. calendar的设置是累计的.比如说现在是10月31号.
    after calendar.set(Calendar.MONTH,5).注意,你这里的5,代表的是6月.
    这时日历就变成6月31日,但是6月是小月,他自动调整为7月1日.
    这时你调用
    calendar.get(Calendar.MONTH)= 6.输出自然是6,(七月输出的是6,请参看第一条).然后你
    calendar.set(Calendar.MONTH,6),日期就是(7月1日,所以输出仍然为6).但是你的初始日期设置为30,那么就不会有这个问题.但是
    如果你的设置是从0开始,那么你会发现在2月分的时候,肯定出现相同的问题.同意:回复人: xmvigour(微电--有狼的气质 没狼的勇气 真郁
    建议,你输出整个日期,而不是仅仅只有月份,这样能看得明白些.
      

  5.   

    wjmmml(笑着悲伤) :
    斑竹不要偷懒 楼主已经知道是0~11了
    只是没把日期考虑进去
    只设置月份 日期美设置好 超出的部分累计到下一个月 月份也会自动加一
    所以接下来就不出有那个月份会在超出月份了
      

  6.   

    Calendar很好用,没有问题的!
      

  7.   

    在看你们的恢复之前,我刚刚考虑了DAY_OF_MONTH,xmvigour和coolskeeter
    都回答对了,一人一半吧。 wjmmml(笑着悲伤) 下次看仔细点吧,呵呵。
      

  8.   

    http://expert.csdn.net/Expert/topic/1088/1088176.xml?temp=.6231653