尝试使用双打而不是多头。
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 数据类型不支持十进制值。通过转换为双精度值,您将能够保留十进制值。