我有 3 个包含日、月和年值的字符串。例如:
String mday = "02";
String mmonth="07";
String myear="2013";
我需要将我活动中的 DatePicker 设置为从上述日期开始的一个月。我并不是说只在 mmonth 值上加 1……如果是第 31 天,我最终会得到一个无效的日期。所以我需要一些方法来增加日期(有效的方法)并用它的值设置 DatePicker。我知道使用 Int 值设置 datePicker 是这样完成的:
DatePicker datepicker = (DatePicker) findViewById(R.id.datePicker1);
datepicker.init(iYear, iMonth, iDay, null);
// where iYear,iMonth and iDay are integers
但是,如何获取递增 DATE 一个月的日、月和年的整数值?
那么在递增日期(整数)的第一个值(字符串)和最终值之间,我必须采取哪些步骤?
我想我必须使用日历。所以我的代码应该是这样的:
Integer iYear, iMonth, iDay = 0;
String mday = "02";
String mmonth="07";
String myear="2013";
Calendar cal = Calendar.getInstance();
cal.set(Integer.parseInt(myear), Integer.parseInt(mmonth), Integer.parseInt(mday));
cal.add(Calendar.MONTH, 1);
// here I should get the values from cal inside the iYear, iMonth, iDay, but I do not seem to succeed.
DatePicker datepicker = (DatePicker) findViewById(R.id.datePicker1);
datepicker.init(iYear, iMonth, iDay, null);
如果我做:
datepicker.init(cal.YEAR, cal.MONTH, cal.DATE, null);
然后应用程序崩溃。我应该怎么办?如何将这个按月递增的日期设置到我的 DatePicker 中?
更新 我将测试代码更改为:
Calendar cal = Calendar.getInstance();
cal.set(2013, 05, 23);
cal.add(Calendar.MONTH, 1);
int xxday = cal.get(Calendar.DATE);
int xxmonth = cal.get(Calendar.MONTH);
int xxyear = cal.get(Calendar.YEAR);
datepicker.init(xxyear, xxmonth, xxday, null);
但是现在 datePicker 设置为从现在开始的一个月,而不是从想要的日期开始的一个月所以而不是(2013-06-23)我有(2013-09-23)。我想这是因为
int xxmonth = cal.get(Calendar.MONTH);
如何从日历中获取真实月份;?