【发布时间】:2014-10-20 16:58:36
【问题描述】:
我想在没有任何库的情况下从整数中减去月份。
问题是当我从第一个月减少 1 个月时:0(1 月)应该是 12(12 月)但它会是 -1..
这是我的添加代码
int currentMonthInt = Integer.parseInt(currentMonth) - 1;
int currentYearInt = Integer.parseInt(currentYear);
// show today month
if (dateposition == 0){
showListView(currentMonth, currentYear, db);
}
// show next month
for (int i = 1; i <=200; i++){
if (dateposition == i){
int month = currentMonthInt + i;
int year = currentYearInt + (month / 12);
month = (month % 12)+1;
String monthString = String.format("%02d", month);
String yearString = String.valueOf(year);
showListView(monthString, yearString, db);
}
}
这是我的减法代码:(但它不起作用)
for (int i = -200; i < 0; i++){
//This is not correct!
//int month = currentMonthInt + i;
//int year = currentYearInt + (month / 12);
//month = (month % 12)+1;
String monthString = String.format("%02d", month);
String yearString = String.valueOf(year);
showListView(monthString, yearString, db);
}
附: dateposition 是月份的位置,如果它的 0 是今天的月份和年份,如果它的 +1 是下个月,依此类推,如果它的 -1 是上个月
【问题讨论】:
-
尝试使用Joda库
-
减去
month = (month % 12)+1;的代码你确定它正确吗? , 如果你有第 0 个月,即使在这种情况下,上面的公式也会只返回一个。 -
a % b可能在a为负数时给出负数。 -
减法代码不正确我只是要求...
-
请使用库。否则你会弄错的。有各种重要的极端情况。