无法在Java.util.Calendar中设置月份
我在Android中有一个onClickListener,它根据单击的+/-按钮更改Java.util.Calendar对象的月份。下面是设置日历的代码。似乎我无法将月份设置为“10”。这到底是怎么回事无法在Java.util.Calendar中设置月份,java,android,calendar,Java,Android,Calendar,我在Android中有一个onClickListener,它根据单击的+/-按钮更改Java.util.Calendar对象的月份。下面是设置日历的代码。似乎我无法将月份设置为“10”。这到底是怎么回事 Calendar c2 = Calendar.getInstance(); int newmonth = 9; Log.d (TAG, "month before: "+ c2.get (Calendar.MONTH)); c2.set (Calendar.MONTH, newmonth); L
Calendar c2 = Calendar.getInstance();
int newmonth = 9;
Log.d (TAG, "month before: "+ c2.get (Calendar.MONTH));
c2.set (Calendar.MONTH, newmonth);
Log.d (TAG, "month now: " + c2.get(Calendar.MONTH));
前一个月:11
现在月份:9
Calendar c2 = Calendar.getInstance();
int newmonth = 10;
Log.d (TAG, "month before: "+ c2.get (Calendar.MONTH));
c2.set (Calendar.MONTH, newmonth);
Log.d (TAG, "month now: " + c2.get(Calendar.MONTH));
前一个月:11
现在的月份:11个月从0开始,所以9是10月,10是11月,11月没有31天 如果您添加:
Log.d (TAG, "day of month now: " + c2.get(Calendar.DAY_OF_MONTH));
您将在第二个示例中看到,日期从31日移到了1日
要获得所需的行为,应使用:
c2.add(Calendar.MONTH, -1); // or +1
你需要像这样的东西:
c2.set(Calendar.DAY_OF_MONTH, 1)
< P> >今天的月份(31)恰好是不是十一月的一天:(-)你不妨考虑<代码>卷()/代码>或<代码> Ad()和/Calp>日历方法。我不知道这件事!谢谢你的解释哇,我不知道日历对象有那么“聪明”!我打赌我也不需要检查我的月指数;只需让日历对象自动滚动到上一年或下一年。