在java中使用日历的日差异
问题描述:
我在我的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();
为什么会发生?
答
2012年是闰年,1979年并非如此。今年3月2日前还有一天 - 所以这两种API都能给你正确的答案!
我怀疑你想比较月份和日期,以得到你期待的语义。
准确地说,我想比较某人的当天生日,以及你知道生日的月份和日期更重要的是它的年份 – 2012-03-02 11:07:49