任何人都可以帮忙。 我正在从日历中确定当前日期。 然后,我想通过添加月数将字符串设置为新日期.. 当我使用以下代码时,它可以在我添加12个月后使用, 但是当我尝试添加1个月时,下一个日期是1月(+ 2个月) 当我尝试添加3个月时,下一个日期是4月。 6个月,下一个日期是2013年10月等.... 当试图添加24,36或48个月时,它几乎可以工作,但提前1个月。 似乎没有关于日期变化的模式
//Get Current date and set as text
Calendar c = Calendar.getInstance();
c.add(Calendar.MONTH, Retest); // Months to Date
int day = c.get(Calendar.DATE);
int month = c.get(Calendar.MONTH);
int year = c.get(Calendar.YEAR);
if (month<=9) { MONTH$ = "0"+month ;}
else {MONTH$ = ""+month; } //Set month to MM
NextTest$ = ""+day+"/"+MONTH$+"/"+year; //Put date ints into string DD/MM/YYYY
Toast.makeText(this, "Re-Test Due.. "+NextTest$, Toast.LENGTH_SHORT).show();
答案 0 :(得分:2)
在Calender API中,January映射到0,因此10月映射到9.因此,如果您尝试根据人类日历查找当前月份,那么将1添加到java日历的月份值,然后只计算值。
int day = c.get(Calendar.DATE);
int month = c.get(Calendar.MONTH) + 1; //It should work for you.
int year = c.get(Calendar.YEAR);
答案 1 :(得分:1)
根据Java Docs,如果任何值传递给Calender的Add Function,则大于Field的值,而不是它将添加模数。请参阅GregorianCalender文档