2012-09-17 25 views
1

我想兩個日期的差轉換爲天,十進制,例如,在我這樣做的那一刻,獲得天量十進制

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等。

謝謝!

+2

如果想要小數點,請不要使用太長時間。 – Averroes

+1

您可能想要使用雙打,然後圍繞您的答案,無論您想要多少小數。 – Thor84no

回答

3

數據類型是事情的價值。你可以使用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); 
2

取而代之的是,您需要使用double來獲得實數的差異。

double diffInDays = (mostRecentTime - previousTime)/(1000 * 60 * 60 * 24); 

long類型是整數除以你什麼答案會來將強制轉換爲整數,並去掉小數點

+0

derp,完美答案,謝謝! – TomSelleck