咋一看“相隔天數”和“相差天數”,似乎好像大概沒有什麼差別,但是仔細琢磨一下,這兩個名詞是有差別的。
相差天數
通常我們在項目開發中需要用到有關時間的計算問題,如:計算兩個日期之間相差的天數。
public int getDays(Date start, Date end) {
return (int) ((end.getTime() - start.getTime()) / / / / );
}
上面的計算可以計算出兩個日期的相差的天數,這并沒有錯。那就讓我們看看相隔天數究竟是什麼意思?
相隔天數
隻要兩個日期在同一天,那相隔天數就是0,不在同一天,相隔天數就不是0。比如:
2017-02-16 23:59:59 和 2017-02-17 00:00:00
相差天數為0,但相隔天數為1
實作代碼:
方法一:
public int getDays(Date start, Date end) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(start);
//日期start 在本年中的第幾天
int day1 = calendar.get(Calendar.DAY_OF_YEAR);
aCalendar.setTime(oDate);
//日期end 在本年中的第幾天
int day2 = calendar.get(Calendar.DAY_OF_YEAR);
return day2 - day1;
}
注意:方法一當跨年的時候會有問題,即兩個日期不在同一年。
方法二:
public int getDays(Date start, Date end) {
DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
return (df.parse(df.format(end)).getTime() -df.parse(df.format(start)).getTime()) / ( * * * );
}
是以,是選擇“相隔天數”還是“相差天數”,具體要看我們的實際需求是什麼了。