Long nowTime = now.getTime(); System.out.println(nowTime); System.out.println(nowTime - 3600*24*1000*30 - 1*1000); System.out.println(((long)nowTime) - 3600*24*1000*30 - 1*1000); System.out.println(((long)nowTime) - 3600*24*1000*30l - 1*1000l); Date startDate = null; Date endDate = null; { if(countEnum == StatusEnum.B.getCode()){ startDate = new Date(nowTime - 3600*24*1000*7 - 1*1000); // endDate = new Date(nowTime-1*1000); } else if(countEnum == StatusEnum.A.getCode()){ startDate = new Date(nowTime - 3600*24*1000*30l - 1*1000); // endDate = new Date(nowTime-1*1000); }
在计算7天时没出错。30天时反而时间向后推移
3600*24*1000*30超出了int的范围,真正保存的是一个负数值
结果增加了