我正在尝试将两个日期的差异转换为天,以十进制表示法,例如,在我这样做的时候,
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等。
谢谢!
答案 0 :(得分:3)
DataType就是问题。你可以使用Double。
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);
答案 1 :(得分:2)
而不是很长,你需要使用double来获得实数的差异。
double diffInDays = (mostRecentTime - previousTime ) / (1000 * 60 * 60 * 24);
long类型是整数,因为你将值除以它将转换为整数并删除小数点的任何答案