当前位置: 代码迷 >> J2SE >> 关于calendar的有关问题
  详细解决方案

关于calendar的有关问题

热度:67   发布时间:2016-04-24 12:58:25.0
关于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);.
  相关解决方案