尝试使用双打代替Longs。
public boolean checkDelayed(Date date1, Date date2)
{
double difference = (double) (date2.getTime() - date1.getTime());
if (difference / 1000d / 60d / 60d / 24d <= 4d)
{
return true;
}
return false;
}
最好的方法是应用简单的数学运算。你的情况是这样的:
difference / 1000L / 60L / 60L / 24L <= 4L
像这样工作:
difference / 60L / 60L / 24L <= 4000L
difference / 60L / 24L <= 240000L
difference / 24L <= 14400000L
difference <= 345600000L
你有它。始终处于简单的工作状态。
public boolean checkDelayed(Date date1, Date date2)
{
long difference = date2.getTime() - date1.getTime();
if (difference <= 345600000L)
{
return true;
}
return false;
}
所有这一切的原因是long数据类型不支持十进制值。通过转换为double,您将能够保留小数值。