日期:2014-05-20  浏览次数:20746 次

关于calendar的问题?
我做了一个简单的测试
假设今天为200年7月14号
Java code

public static void main(String[] args)
    {
        Calendar c = Calendar.getInstance();
        c.add(Calendar.DAY_OF_MONTH, 20);
        System.out.println(c.get(Calendar.DAY_OF_MONTH
                ));
    }


我日期增加20天后,得到的应该是2008年8月3日
但是在获取c.get(Calendar.DAY_OF_MONTH)的时候,得到的却不是8

大家遇到过这样的问题吗?


------解决方案--------------------
今天是7月的第14天,你加了20天
就是7月的第34天。(当然7月没有34天,所以进位了,到了第8月)

也就是8月的第3天

所以输出是3
------解决方案--------------------
c.get(Calendar.DAY_OF_MONTH)得到的是日不是月
------解决方案--------------------
Java code
c.get(Calendar.MONTH) + 1

------解决方案--------------------
月份是从0到11

Java code
import java.util.Calendar;

public class test2 {
    public static void main(String[] args) {
        Calendar c = Calendar.getInstance();
        System.out.println(c.get(Calendar.MONTH));//今天7月14,但这里会输出是6,
        c.add(Calendar.DAY_OF_MONTH, 20);
        System.out.println(c.get(Calendar.MONTH));//加了20后,这里会输出是7
    }
}

------解决方案--------------------
引用楼主 jetdw 的帖子:
我做了一个简单的测试
假设今天为200年7月14号

Java code
public static void main(String[] args)
{
Calendar c = Calendar.getInstance();
c.add(Calendar.DAY_OF_MONTH, 20);
System.out.println(c.get(Calendar.DAY_OF_MONTH
));
}


------解决方案--------------------
打错了。应给为System.out.println(c.get(Calendar.DAY_OF_MONTH)+1);.