站内搜索: 请输入搜索关键词

当前页面: 开发资料首页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运算,这个还不溢出


↑返回目录
前一篇: readline的问题
后一篇: 从本地硬盘读取一个.txt文件,并显示文件的路径,然后把内容写到数据库中,怎么做?