我需要编写一个代码,输入一个名为 mese 的整数(这个整数从 0 到 5),这个整数将被添加到当前月份,因为当我需要得到一个确切的最后一天时调用这个函数月份示例,现在是 8 月,我需要知道 8 月的最后一天 + mese,其中 mese =3 所以我需要知道 8 月的最后一天 + 3 = 11 月,所以在这种情况下函数将返回 30。这是我的代码,但我不明白出了什么问题(请注意,这只是我真实代码的一部分)
public int getmax(int mese){
int res =0;
int giornocorr = Calendar.getInstance().get(Calendar.DATE);
int mesecorr = Calendar.getInstance().get(Calendar.MONTH);
int annocorr = Calendar.getInstance().get(Calendar.YEAR);
if ((mesecorr + 1) - mese == 0) {
// se siamo nel mese corrente
giornoFineMese = Calendar.getInstance().getActualMaximum(Calendar.DAY_OF_MONTH);
res = giornoFineMese - giornocorr;
System.out.println("days of this month: " + res);
} else {
// se non siamo nel mese corrente
Calendar c = Calendar.getInstance();
if ((mesecorr + 1 + mese) % 13 >= mesecorr) {// current year
c.set(Calendar.MONTH, mesecorr + 1 + mese);
c.set(Calendar.YEAR, annocorr);
} else {// next year
c.set(Calendar.MONTH, mesecorr + 1 + mese);
c.set(Calendar.YEAR, annocorr + 1);
}
c.add(Calendar.MONTH, mese);
c.set(Calendar.DATE, c.getMaximum(Calendar.DATE));
res = c.getActualMaximum(Calendar.DATE);
System.out.println("days of month " +c.get(Calendar.MONTH)+" "+ res);
return res;
}
感谢任何回答的人