考虑这一段代码:爪哇长被错误地计算
// calculate age of dog
long interval = 1000*60*60*24*30;
int ageInWeeks = Weeks.weeksBetween(geburtsDatumDateTime, nowDateTime).getWeeks();
if (ageInWeeks < 20){
// wöchentlich
interval = 1000*60*60*24*7;
} else if (ageInWeeks >= 20 && ageInWeeks < 52){
// 2-wöchentlich
interval = 1000*60*60*24*14;
} else if (ageInWeeks >= 52){
// monatlich
interval = 1000*60*60*24*30;
}
调试器显示的是,在ageInWeeks> = 52的时间间隔的情况下是:-1702967296,但它应该是:25.92亿
减号表示某种溢出错误。 然而Java中long的最大值是2E63-1,它是:9.2233E18
我在这里错过了什么?是一个较长的较小的Android最大值?
您可以用'Long.MAX_VALUE' –