Android/Java:long为负值,但不超过max_值

Android/Java:long为负值,但不超过max_值,java,android,long-integer,Java,Android,Long Integer,我试图在android应用程序中进行一些基本的计算,将Date.getTime()值与一些计算值进行比较 我在数据库查询期间进行的计算是: long minus = pauseDays * 24 * 60 * 60 * 1000; 所以基本上我计算了pauseDays的毫秒值。如果pauseDays变得更大(我说的是90天左右),就会发生一些奇怪的事情。计算结果为负数 奇怪的是,结果应该是7776000000,因此它应该比Long.MAX\u值小得多。有人能给我解释一下为什么这里有一个负数吗?

我试图在android应用程序中进行一些基本的计算,将
Date.getTime()
值与一些计算值进行比较

我在数据库查询期间进行的计算是:

long minus = pauseDays * 24 * 60 * 60 * 1000;
所以基本上我计算了
pauseDays
的毫秒值。如果
pauseDays
变得更大(我说的是90天左右),就会发生一些奇怪的事情。计算结果为负数


奇怪的是,结果应该是
7776000000
,因此它应该比
Long.MAX\u值小得多。有人能给我解释一下为什么这里有一个负数吗?

原因可能是因为
pauseDays
int
类型,对吗?然后将其乘以另一组
int
s,然后将其转换为
long

考虑:

其输出为:

-813934592
7776000000

请注意,第一个
长减号使用整数生成其值。第二个
long minul
使用所有长整型值。

谢谢,这解决了我的问题:)我完全忽略了一个事实,即pauseDays是一个INT值。
-813934592
7776000000