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

 

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 eric1300460 的頭像
    eric1300460

    狡兔三窟

    eric1300460 發表在 痞客邦 留言(2) 人氣()