Java 以十进制表示法获取天数
我试着把两个日期的差值转换成天,用十进制表示法,例如,在我这样做的时候Java 以十进制表示法获取天数,java,date,datetime,time,unix-timestamp,Java,Date,Datetime,Time,Unix Timestamp,我试着把两个日期的差值转换成天,用十进制表示法,例如,在我这样做的时候 Date mostRecentDate = dates[0]; Date previousDate = dates[1]; long mostRecentTime = mostRecentDate.getTime(); long previousTime = previousDate.getTime(); long diffInDays = (mostRecentTime - previousTime ) / (100
Date mostRecentDate = dates[0];
Date previousDate = dates[1];
long mostRecentTime = mostRecentDate.getTime();
long previousTime = previousDate.getTime();
long diffInDays = (mostRecentTime - previousTime ) / (1000 * 60 * 60 * 24);
这将始终导致总天数,但我希望如果两个日期的差值为两天半,我可以返回2.5天,或者如果差值为6小时,我可以返回0.25天,等等
谢谢 您需要使用double来获得实数差,而不是long
double diffInDays = (mostRecentTime - previousTime ) / (1000 * 60 * 60 * 24);
long类型是整数,当您除以值时,无论答案是什么,它都将转换为整数并删除小数点而不是long。您需要使用double来获得实数的差值
double diffInDays = (mostRecentTime - previousTime ) / (1000 * 60 * 60 * 24);
long类型是整数,因为您将值除以任何答案,它将转换为整数并删除小数点数据类型就是问题所在。你可以用双人
Date[] dates = new Date[2];
dates[1] = new Date(System.currentTimeMillis()-12*1000*60*60);
dates[0] = new Date(System.currentTimeMillis());
Date mostRecentDate = dates[0];
Date previousDate = dates[1];
double mostRecentTime = mostRecentDate.getTime();
double previousTime = previousDate.getTime();
double diffInDays = (mostRecentTime - previousTime ) / (1000 * 60 * 60 * 24);
数据类型就是问题所在。你可以用双人
Date[] dates = new Date[2];
dates[1] = new Date(System.currentTimeMillis()-12*1000*60*60);
dates[0] = new Date(System.currentTimeMillis());
Date mostRecentDate = dates[0];
Date previousDate = dates[1];
double mostRecentTime = mostRecentDate.getTime();
double previousTime = previousDate.getTime();
double diffInDays = (mostRecentTime - previousTime ) / (1000 * 60 * 60 * 24);
如果你想要小数,就不要用long。你可能想用double,然后把答案四舍五入到你想要的小数位数。如果你想要小数,就不要用long。你可能想用double,然后把答案四舍五入到你想要的小数位数。