close
這裡舉例三個方法 方法三才正確
方法1:
public int daysOfTwo(Calendar befor, Calendar after) {
int day1 = befor.get(Calendar.DAY_OF_YEAR);
int day2 = after.get(Calendar.DAY_OF_YEAR);
return day2 - day1;
}
這個方法其實就只是把2個時間先算出他們在這一年的第幾天,然後做相減動作。
不過我懷疑會有個問題如果1月1號跟12月31日比較會發生什麼事@@"
經過我測試會變負的0.0 天呀@@"
另一個方法2:
public long daysOfTwo(Calendar befor, Calendar after) {
long m = after.getTimeInMillis()-befor.getTimeInMillis();
return m/(24*60*60*1000);
}
不過這方法遇到1月2號AM 1點 跟 1月1號 晚上11點 並不會判斷相差一天。
方法3: 這個OK
public int daysOfTwo(Calendar befor, Calendar after) {
long m = after.getTimeInMillis() - befor.getTimeInMillis();
m=m/(24*60*60*1000);
//判斷是不是同一天
if(m==0 && after.get(Calendar.DAY_OF_YEAR)!=befor.get(Calendar.DAY_OF_YEAR)){
m+=1;
}
return (int)m;
}
此文章參考來源:http://hi.baidu.com/larry1984/blog/item/37646f2b170ba1f3e6cd40f7.html
全站熱搜