2012-03-02 51 views
0

我在我的android應用程序中使用Calendar類來計算日期的一年中的某一天,然後與當前的某一天進行比較。下面是我的代碼使用方法:在java中使用日曆的日差異

Date now=new Date(); 
Calendar ca1 = Calendar.getInstance(); 
     ca1.set(now.getYear(), now.getMonth(), now.getDate()); 
     int nowC=ca1.get(Calendar.DAY_OF_YEAR); 

//Date arg0=say,get from user 
     Calendar ca2 = Calendar.getInstance(); 
     ca2.set(arg0.GetBirthDay().getYear(),arg0.GetBirthDay().getMonth(),arg0.GetBirthDay().getDate()); 
     int d1C=ca2.get(Calendar.DAY_OF_YEAR); 

調試我的應用程序,我看到當天以下值: 週五3月2 14時18分33秒通社亞洲/德黑蘭2012

以及爲arg0: 週五3月2日00:00:00亞洲/德黑蘭1979年

和「nowC」得到了62,和「D1C」得到了61

我希望他們都能平等事業兩者具有相同的月和日,也如果我使用DateTime類的joda包,如下所示,我得到了相同的結果:

int ndy=dtnow.getDayOfYear(); 
int d1dy=dt1.getDayOfYear(); 

爲什麼會發生?

回答

2

2012年是閏年,1979年並非如此。今年3月2日前還有一天 - 所以這兩種API都能給你正確的答案!

我懷疑你想比較月份和日期,以得到你期待的語義。

+0

準確地說,我想比較某人的當天生日,以及你知道生日的月份和日期更重要的是它的年份 – 2012-03-02 11:07:49