关于cal.get(Calendar.MONTH)在两种datePicker和dialog上面显示的差一个月的问题
老师在前面DatePicker上面说,cal.get(Calendar.MONTH)因为按0-11排,所以获取的月份实际应该加一,但是在dialog中传递月份参数,又是cal.get(Calendar.MONTH),这次没有加一,但是show出来的对象获取的仍然是正确的,这到底是为什么呢?为什么这两次一个加一,一个没有加一,获取到的都是正确的当前月份?
老师在前面DatePicker上面说,cal.get(Calendar.MONTH)因为按0-11排,所以获取的月份实际应该加一,但是在dialog中传递月份参数,又是cal.get(Calendar.MONTH),这次没有加一,但是show出来的对象获取的仍然是正确的,这到底是为什么呢?为什么这两次一个加一,一个没有加一,获取到的都是正确的当前月份?
2014-12-06
因为DatePicker的init函数中第二个参数月份是从0开始计算的
下面是Android SDK文档中DatePicker的init函数:
public void init (int year, int monthOfYear, int dayOfMonth, DatePicker.OnDateChangedListener onDateChangedListener)
Parameters
year:The initial year.
monthOfYear:The initial month starting from zero.
dayOfMonth:The initial day of the month.
onDateChangedListener:How user is notified date is changed by user, can be null.
dialog中传递月份参数时是onDateSet函数,那个月份参数也是从0开始计算的,所以不用加一
public abstract void onDateSet (DatePicker view, int year, int monthOfYear, int dayOfMonth)
Parameters
view:The view associated with this listener.
year:The year that was set.
monthOfYear:The month that was set (0-11) for compatibility with Calendar.
dayOfMonth:The day of the month that was set.
获取的月份都是从0开始计算的,当需要显示在屏幕上的时候就加一
举报