当前页面: 开发资料首页 → J2SE 专题 → long time=25*86400000;这个数字太大,怎么处理啊
long time=25*86400000;这个数字太大,怎么处理啊
摘要: long time=25*86400000;这个数字太大,怎么处理啊
long time=25*86400000;
long day100 = (new Date()).getTime() + time;
time这个数字太大了,怎么处理啊
java中long型数够大的,完全可以处理阿
import java.util.Date;
public class SnopTime
{
public static void main(String[] args)
{
long mingtian = (new Date()).getTime() + 13*86400000;
//这个13换成100就错了
long jintian= (new Date()).getTime() ;
String today = new java.text.SimpleDateFormat("yyyy-MM-dd"). format(new Date(jintian));
String tomorrow = new java.text.SimpleDateFormat("yyyy-MM-dd"). format(new Date(mingtian));
System.out.println(today);
System.out.println(tomorrow);
}
}
long time=25l*86400000;
就可以了
实在不行用java.math.BigDecimal
long是8个字节,够你用了...
to ChDw(米) ( )
long time=25l*86400000;这样也不行啊
import java.util.Date;
public class SnopTime
{
public static void main(String[] args)
{ long time=25*86400000;
long day100 = (new Date()).getTime() + time;//每天是86400000毫秒
long jintian= (new Date()).getTime() ;
String today = new java.text.SimpleDateFormat("yyyy-MM-dd"). format(new Date(jintian));
String after100days = new java.text.SimpleDateFormat("yyyy-MM-dd"). format(new Date(day100));
System.out.println("今天是"+today);
System.out.println("100天后是"+after100days);
}
}
to eric_xin(ericxin)
如果用java.math.BigDecimal
那么new Date(jintian)里面只能用long 做参数
BigDecimal.longValue() 返回long
你的数学怎么算的啊
long ONEDAY = 24l * 3600 * 1000;
long day100 = (new Date()).getTime() + ONEDAY * 100;//每天是86400000毫秒
long jintian = (new Date()).getTime();
String today = new java.text.SimpleDateFormat("yyyy-MM-dd").format(new Date(jintian));
String after100days = new java.text.SimpleDateFormat("yyyy-MM-dd").format(new Date(day100));
System.out.println("今天是" + today);
System.out.println("100天后是" + after100days);
说来说去其实你还是没有看清楚我的回答:
long ONEDAY = 24 * 3600 * 1000 * 100;
和
long ONEDAY = 24l * 3600 * 1000 * 100;
结果是不相同的!
long ONEDAY = 24 * 3600 * 1000 * 100;
和
long ONEDAY = 24l * 3600 * 1000 * 100;
结果是不相同的!
为什么拆开就好了呢??????
谢谢
是因为Java的int只有四位
long ONEDAY = 24 * 3600 * 1000 * 100; 可以看成是
int tmp = 24 * 3600 * 1000 * 100;
long ONEDAY = tmp;
24 * 3600 * 1000 * 100 已经溢出了,导致结果错误
而如果你分开了,则在运算中已经变成long运算,这个还不溢出